SlideShare une entreprise Scribd logo
1  sur  421
Télécharger pour lire hors ligne
А.П. Габец, Д.И. Гончаров




1С:Предприятие 8.0

Простые примеры
   разработки




        Москва
 ООО «1С-Паблишинг»
         2005
УДК 658.012.011.56:004.42
ББК 65.29
   Г12


   Габец Андрей Петрович, Гончаров Дмитрий Игоревич
 Г12 1С:Предприятие      8.0.   Простые    примеры           разработки,
       М.: ООО «1С-Паблишинг», 2005. - 420 с: ил.
      ISBN 5-9677-0056-0

         Книга представляет собой справочное пособие, иллюстрирующее
      простые     примеры     разработки     алгоритмов   на    платформе
      «1С:Предприятие 8.0».
         Издание      будет    полезно      начинающим      разработчикам,
      администраторам, у которых на предприятии внедряется система, и
      продвинутым     пользователям,     которые    хотят  самостоятельно
      дорабатывать прикладные решения.
         Книга содержит большое количество практических примеров,
      сгруппированных по тематике использования. Кроме этого книга
      содержит подробный указатель на используемые в примерах свойства,
      методы и события встроенного языка.
         Данная книга дополняет, но не заменяет штатную документацию к
      программному продукту, входящую в комплект поставки, и позволяет
      более эффективно использовать возможности программы.
          Под редакцией М.Г. Радченко.




                                  Право                 тиражирования
                                  и распространения книги принадлежит
                                  фирме "1С-Паблишинг".
                                  Полное или частичное копирование
                                  материалов книги без письменного
                                  разрешения фирмы "1С-Паблишинг"
                                  запрещается.
         4601546 025616


ISBN 5-9677-0056-0                        ООО "1С-Па6лишингм, 2005
ОГЛАВЛЕНИЕ
Введение                                                         16
  Как работать с изданием?                                            17

Примитивные типы, системные функции                              18
   (D Как явно указать нужную дату?                                   18
   Как проверить дату на пустое значение?                             18
   Как сравнить две даты (дни)?                                       19
   Как прибавить к дате день, месяц?                                  19
   Как можно проверить тип значения переменной на равенство
      нужному?                                                        20
   Как очистить реквизит формы, имеющий ссылочный тип?                21
   Как очистить значение, имеющее тип «Хранилище значения»?           21
   Как проверить тип значения, помещенного в реквизит
      имеющий тип «Хранилище значения»?                               21
   Как сжать данные, помещаемые в хранилище значения?                 22
   Как предоставить пользователю возможность выбора значения
      составного типа?                                                23
   Как применить округление при работе с вычисляемыми
      числовыми полями в запросе?                                     24
   Как вывести многострочное предупреждение?                          24
   Как при выполнении обработки сообщить пользователю текущее
      время?                                                          25
   Как вывести число прописью по-русски, но без дробной части?        25
   Как вывести число прописью по-русски, с указанием сотых в
      дробной части?                                                  26
   Как вывести прописью число килограммов с указанием дробной
      части в граммах?                                                27
   Как долларовую сумму вывести прописью по-английски?                27
   Как загрузить внешнюю компоненту?                                  27
   Как выполнить команду операционной системы?                        28
   Как реализовать код процедуры в зависимости от режима
      выполнения (на клиенте, на сервере, во внешнем
      соединении) ?                                                   29
   Как при групповой обработке объектов реализовать стратегию
      «либо все, либо ничего»?                                        30
   Как посчитать сумму по формуле сложного процента?                  31

Универсальные коллекции                                          32
  Массив                                                              32
   (D В каких ситуациях обычно используются массивы?                  32
   ® Как создать массив?                                              32
   ф Как создать многомерный массив?                                  33
   ф Как добавить элементы в массив?                                  34
Оглавление


             Ф Как определить размер массива?                               34
             ф Как обратиться к элементу массива?                           34
             ® Как перебрать элементы массива?                              35
             ф Как удалить элемент массива?                                 36
             ф Как удалить все элементы массива?                            37
             Как удалить повторяющиеся элементы массива?                    37
             Как скопировать массив?                                        38
             Как проверить, что два массива идентичны?                      39
             В массив выгружены данные, содержащие наименования
                контрагентов. Как их отсортировать?                         40
             Есть массив, в который выгружены значения типа
                СправочникСсылка.Номенклатура. Как удалить все пустые
                значения массива?                                           41
             Как получить массив номенклатурных позиций, использованных
                в табличных частях «Номенклатура» и «Тара» накладной?       42
             Есть две таблицы значений. Как получить массив совпадающих
                имен колонок?                                               43
             Как в запросе сделать отбор по нескольким вариантам
                заполнения реквизита типа «ПеречислениеСсылка»?             44
             Как из регистра сведений «РасчетчикиЗарплатыОрганизации»
                получить в виде массива всех расчетчиков зарплаты
                определенного подразделения организации?                    45
        Структура                                                           47
             Ф В каких ситуациях обычно используются объекты типа
                «Структура»?                                                47
             ф Как создать структуру?                                       47
             ф Как добавить элементы в структуру?                           48
             Ф Как обратиться к элементу структуры?                         48
             ф Как перебрать элементы структуры?                            49
             ф Как удалить элемент структуры?                               50
             Как в структуре установить значение для элемента с
                определенным ключом?                                        50
             Как получить в структуру многомерные данные? Как собрать
                информацию по установленным в форме журнала отборам?        51
             Как определить, есть ли в структуре элемент с ключом
                «Контрагент», и если есть, но содержит пустое значение
                справочника или Неопределено — удалить этот элемент?        52
             Как из табличной части «Товары» документа получить все
                строки, где значение реквизита «Цена» равно нулю, а
                значение реквизита «СтавкаНДС» равно значению «НДС 18»
                перечисления «СтавкиНДС»?                                   53
             Как получить данные о текущей учетной политике
                бухгалтерского учета организации из периодического
                регистра сведений на заданную дату?                         53
             Как сформировать структуру названий реквизитов табличной
                части произвольного документа?                              55
             Как получить запросом данные табличной части документа, имея
                структуру названий реквизитов табличной части?              55
         Соответствие                                                       57
Оглавление


   ф В каких ситуациях обычно используются объекты типа
      «Соответствие»?                                                    57
   ф Как создать соответствие?                                           57
   ф Как добавить элементы в соответствие?                               57
   ф Как обратиться к элементу соответствия?                             58
   Ф Как перебрать элементы соответствия?                                58
   ф Как удалить элемент соответствия?                                   59
   Как получить данные из соответствия?                                  59
   Как получить многоуровневое соответствие видов расчетов,
      обладающих базовыми видами расчетов?                               60
  Список значений, таблица значений, дерево значений                     63
   ф В каких ситуациях обычно используются списки значений,
      таблицы значений, дерево значений?                                 63
   ф Как создать список значений?                                        64
   ф Как добавить элементы в список значений?                            64
   ф Как найти элемент списка значений?                                  65
   ф Как обратиться к элементу списка значений?                          65
   ф Как перебрать элементы списка значений?                             66
   ф Как удалить элемент списка значений?                                66
   ф Как создать таблицу значений и заполнить ее поля?                   67
   ф Как найти значение в таблице значений?                              68
   ® Как перебрать строки таблицы значений?                              69
   ф Как удалить строки (колонки) таблицы значений?                      69
   Как заполнить таблицу значений, если имена колонок
      содержатся в переменных?                                           71
   Как заполнить всю колонку таблицы значений нужным
      значением?                                                         71
   Как таблицу значений «ТаблицаПолучатель» заполнить данными
      таблицы значений «ИсходнаяТаблица»?                                72
   Как добавить колонки к таблице значений «ТаблицаЗначений» с
      ограничениями по типу?                                             74
   Как изменить тип значения колонки таблицы значений,
      полученной выгрузкой из запроса?                                   75
   Как самостоятельно заполнить дерево значений?                         76

Прикладные объекты                                                  78
  Справочники                                                            78
   Ф Как создать элемент (группу) справочника?                           78
   ф Как найти элемент справочника?                                      80
   ф Как удалить элемент справочника?                                    81
   ф Как перебрать элементы справочника?                                 82
   ф Как выбрать все элементы из определенной группы?                    83
   Ф Как перебрать элементы подчиненного справочника с
      помощью запроса?                                                   85
   Ф Как перебрать элементы подчиненного справочника с
      помощью выборки справочника?                                       86
   ф Как открыть форму списка (элемента) справочника?                    86
Оглавление


             ф Как добавить запись в табличную часть элемента
                справочника?                                                 87
             ф Как удалить строки из табличной части справочника?            87
             Ф Как перебрать строки табличной части справочника?             88
             Ф Как создать элемент в нужной группе?                          89
             Как узнать, есть ли у текущего элемента подчиненные?            90
             Как узнать количество подчиненных элементов у выбранного
                элемента справочника?                                        91
             Как узнать количество подчиненных элементов у выбранного
                элемента справочника, если количество подчиненных
                справочников больше чем один?                                93
             Как получить всех родителей выбранного элемента справочника?    94
             Как получить запросом «полный» код элементов справочника,
                если тип кода - Строка?                                      96
             Как получить все элементы справочника, содержащие в
                наименовании определенную подстроку, со всей иерархией, в
                которую они входят?                                          97
             Как найти все элементы справочника, в которых не заполнен
                строковый реквизит?                                          98
             Как перенести все элементы справочника «Контрагенты» из
                одной группы в другую?                                       99
             Как организовать программный выбор элемента справочника?       100
             Как сохранить фотографию сотрудника в справочнике
                «Сотрудники»?                                               102
        Документы                                                           104
             ® Как создать новый документ?                                  104
             ф Как найти документ?                                          104
             Ф Как открыть форму документа?                                 105
             ф Как изменить значение реквизита и записать документ?         106
             Ф Как добавить строку в табличную часть документа, имея
                ссылку на документ?                                         107
             ф Как удалить строки из табличной части документа?             107
             ф Как перебрать строки документа?                              108
             ф Как выгрузить табличную часть документа?                     108
             ф Как посчитать итог в табличной части документа?              108
             ф Как провести документ?                                       109
             ф Как перебрать документы?                                     109
             ф Как пометить на удаление все приходные накладные?            111
             ф Как, имея ссылку на документ, создать в базе его копию?      111
             ф Как, имея ссылку на документ, прочитать его движения по
                регистру?                                                   112
             Как определить, по каким регистрам документ выполнил
                движения?                                                   113
             Как в табличной части документа удалить строки с нулевым
                значением реквизита «Количество»?                           115
             Как очистить колонку «СтавкаНДС» в табличном поле
                «Товары» уже заполненного документа?                        116
             Как заполнить значения свойств нового документа на основании
                существующего?                                              117
Оглавление


 Как получить перечень приходных накладных, в которых не
    заполнены номенклатурные позиции?                                118
 Как на дату расходной накладной определить курс валюты
    управленческого учета? Валюта управленческого учета
    храниться в периодическом регистре сведений                      119
 Как из формы документа вызвать его неоперативное
    проведение?                                                      120
 Как в обработке проведения получить остатки, актуальные на
    позицию документа?                                              121
 Как определить количество документов и количество разных
    значений реквизита в таблице записей документа?                  122
 В последовательность «ПартионныйУчет» добавлено измерение
    «Организация». Как теперь получить данные по границам
    последовательности для каждого значения этого измерения?         123
Хранение сведений                                                   124
 ® Как добавить запись в непериодический независимый регистр
    сведений?                                                        124
 ф Как считать содержимое непериодического независимого
    регистра сведений? «СобственныеКонтрагенты»?                     125
 Ф Как удалить все записи из независимого регистра сведений?         126
 ф Как удалить записи независимого регистра сведений с
    отбором по конкретной организации?                               126
 ф Как добавить запись в периодический независимый регистр
    сведений?                                                        127
 ф Как прочитать (изменить) записи в периодическом
    независимом регистре сведений?                                   128
 ф Как удалить записи в периодическом независимом регистре
    сведений?                                                        128
 Как в периодическом независимом регистре сведений
    «КурсыВалют» удалить все записи по валютам с
    наименованиями «EUR» и «USD», период которых меньше
    01 января 2005 года?                                             129
 Как прочитать данные, актуальные на определенную дату, из
    регистра сведений «Курсы валют» с отбором по нескольким
    валютам (отбор по измерениям)?                                   131
 Как поменять период у записей периодического независимого
    регистра, соответствующих ряду условий?                          132
 Как «сделать периодическим» реквизит уже заполненного
    справочника?                                                     134
 ф Как добавить записи в регистр сведений, подчиненный
    регистратору?                                                    137
 ф Как прочитать (изменить) записи в регистре сведений,
    подчиненном регистратору?                                        138
 ф Как удалить записи из регистра сведений, подчиненного
    регистратору?                                                    139
Бухгалтерский учет                                                  140
 Ф Как в регистре бухгалтерии сформировать проводки?                 140
 ф Как получить остаток по счету?                                    142
 ф Как получить обороты по счету?                                    143
 ф Как получить остатки но счетам?                                   143
Оглавление


             Ф Как перенести остаток со счета на счет?                        144
             Как найти первый документ, приведший к появлению
                кредитового остатка на счете?                                 145
             Как выбрать все счета, в аналитике которых присутствуют либо
                вид субконто «Контрагент», либо вид субконто «Договор»?       146
             Как выбрать все счета, в аналитике которых присутствуют как
                вид субконто «Контрагент», так и вид субконто
                «Номенклатура»?                                               147
             Как добавить новый вид субконто к счету?                         147
             Как из регистра бухгалтерии «Хозрасчетный» получить обороты
                только по валютным счетам?                                    149
             Как выбрать в регистре бухгалтерии «Хозрасчетный» обороты по
                «60-ым» счетам, исключив внутренние обороты между ними?       151
             Как реализовать метод «красного сторно» для регистра
                бухгалтерии?                                                  152
        Сложные периодические расчеты                                         154
             (D Как получить сумму начисления по конкретному виду расчета
                указанному сотруднику в указанном периоде?                    154
             (D Как получить сумму всех начислений указанному сотруднику
                в указанном периоде?                                          155
             Как получить таблицу перерасчетов по перерасчетам нескольких
                регистров?                                                    156
             Как для документа «НачислениеЗарплатыРаботникам»
                определить номера строк записей полностью вытесненных
                видов расчета?                                                157
             Как сформировать расчетный листок сотрудника?                    158
             Как организовать сторнирование уже произведенных расчетов
                прошлых периодов?                                             159
         Бизнес-процессы                                                      162
             Как определить бизнес процесс, в котором количество
                последовательных этапов определяется индивидуально на
                момент старта экземпляра процесса?                            162
             Как при работе с бизнес процессами отказаться от стандартного
                способа формирования задачи и сформировать ее
                программно?                                                   167
         Прочие прикладные объекты                                            169
             ф Как, не открывая форму внешней обработки, выполнить ее
                процедуру для определенного объекта?                          169
             (D Как быстро получить информацию, по всем объектам,
                находящимся в компетенции конкретного менеджера
                (элемент справочника «Пользователи») по продажам?              169

      Формы и элементы управления                                            172
         Работа с формами                                                     172
             (D Как открыть форму документа?                                   172
             Ф Как открыть форму внешней обработки?                            172
             (D Как отрыть форму отчета так, чтобы она не перекрывала
                собой ту форму, из которой она открыта?                        173
Оглавление


 ® Как открыть форму отчета на весь экран?                            173
 Как из формы документа открыть форму списка данного
    документа, спозиционировавшись на нем же?                         174
 ® В документе есть реквизит «Контрагент». Как открыть форму
    подчиненного ему справочника «ДоговорыКонтрагентов»?              175
 ф Как в форме отобразить картинку, сохраненную в реквизите
    справочника?                                                      176
 ф Как в журнале документов «УчетКадров» отобрать только
    документы «ПриемНаРаботу»?                                        176
 ф Как узнать интервал дат в открытом текущем журнале?                177
 Как при открытии справочника сделать отбор по контрагентам,
    входящим в список?                                                177
 Как обеспечить, чтобы для выбора значения покупателя в
    расходной накладной справочник контрагенты открывался
    сразу с открытой группой «Покупатели»?                            178
Табличное поле                                                       181
 ф Как запретить пользователю изменять порядок следования
    колонок в табличном поле?                                         181
 Ф Как запретить пользователю изменять любые настройки
    колонок табличного поля?                                          181
 ф Как вывести информацию о том, какой отбор установлен в
    журнале документов?                                               182
 ф Как в форме справочника установить курсор на элемент с
    известным наименованием?                                          182
 ф Как в форме списка сделать отбор по значению реквизита?            183
 ф Как запретить выдачу сообщения: «Введенные данные не
    отображены в списке, так как не соответствуют отбору» при
    добавлении новых элементов в справочник?                          184
 ф Как заполнить ячейку табличного поля данными?                      185
 Как изменить цвет фона ячейки табличного поля в зависимости
    от значения, выводимого в нее?                                    186
 Как в табличное поле «ВыбранныеКонтрагенты» добавить новую
    колонку «ОсновнойДоговор», заполнить ее значения и дать
    возможность открытия этих значений?                               187
 Как задать список выбора для колонки «ВидДокумента»
    табличного поля?                                                  189
 Как обеспечить возможность отбора и сортировки данных по
    реквизитам, не отображаемым в табличном поле формы
    списка справочника?                                               190
 Как реализовать перетаскивание между элементами управления?          190
 Как вывести остатки на складах в списке номенклатуры?                193
Другие элементы управления                                           194
 ® В форме есть панель со страницами. Как разместить картинку
    на закладке?                                                      194
 Ф Как обеспечить, чтобы при открытии формы уже записанного
    элемента справочника «Контрагенты» активной была
    закладка «СчетаИДоговоры» панели «Панель»?                        195
 Как организовать выбор из нескольких списков документов для
    открытия?                                                         195
 Как можно организовать подстановку обращения к персоне?              197
Оглавление


             Как в командной панели создать подменю с кнопками?             198
             Как созданной кнопке назначить «горячие клавиши»?              200
             Как реализовать заполнение возможных значений поля выбора
                «ОбрабатываемаяТабличнаяЧасть» при заполнении поля
                ввода «ОбрабатываемыйДокумент»?                             201
             ф Если пользователь указал несколько дат в поле календаря -
                как их перебрать?                                           202
             ф Как организовать работу с индикатором?                       203
             Как у элемента управления сменить источник данных?             205
             ф Как задать представление даты, отображаемое в поле ввода
                по-умолчанию?                                               206
             Ф Как вывести текст в поле картинки в том случае, если
                картинка не выбрана?                                        209
             Ф Как открыть пользователю стандартный диалог выбора цвета?    211
             Как заполнить список в форме данными запроса?                  212
             ф Как отобразить в форме файл графической схемы?               212
        Интерфейсы, стили                                                   213
             ф Как задать различные стили 1С:Предприятия для различных
                категорий пользователей?                                    213
             Есть список имен интерфейсов с пометками. Как сделать
                помеченные интерфейсы видимыми?                              214
             Как из формы обработки отключить глобальный обработчик
                ожиданий?                                                   215

     Запросы, отчеты                                                       216
         Запросы                                                            216
             Как получить данные из табличной части документов?              216
             Как получить данные из табличной части документов и
                представить их в иерархическом виде?                         217
             Как подсчитать количество одинаковых элементов в выбираемых
                данных?                                                      218
             Как применять условия для отбора по значениям полей,
                вычисленных как результат агрегатной функции?                219
             Как ограничить выборку из виртуальной таблицы?                  220
             Как просуммировать данные по одинаковым значениям одного
                из полей выборки?                                            221
             Как получить только те записи, в которых значение
                определенного поля превышает указанное значение?             223
             Как обратиться к подчиненным полям в запросе?                   224
             Как объединить результаты нескольких запросов?                  225
             Как выбрать данные из двух таблиц, удовлетворяющие
                определенному условию?                                       226
             Как дополнить данные одной таблицы данными, выбранными из
                другой таблицы по определенному условию?                     227
             Как объединить данные из двух таблиц по определенному
                условию?                                                     228
             Как вывести некоторое значение вместо NULL в запросе?           231




10
Оглавление


   Как вместе с данными некоторой таблицы получить общие итоги
      из этой же таблицы?                                                  231
   Как получить иерархические итоги по группе справочника?                 233
   Как по состоянию на заданную дату по регистру
      «ОстаткиНаСкладе» найти последний документ
      «ПоступлениеТоваровУслуг», по которому приходила
      номенклатура?                                                        235
   Как подсчитать количество записей с одинаковым значением
      некоторого поля?                                                     237
   Как в итоговых записях вывести количество различных записей?            239
   Как узнать количество записей в результате запроса?                     240
   Как проверить достаточность остатков товаров на складах,
      указанных в документе?                                               240
   Как в запросе осуществить отбор по значению перечисления?               243
   Как получить курсы валют на две интересующие даты?                      245
   Как одним запросом получить таблицу расхождений курсов
      взаиморасчетов всех выписанных документов
      «ЗаказПокупателя» с официальным курсом?                              246
   Как написать запрос таким образом, чтобы на определенном
      уровне иерархии запроса считались одни итоговые функции,
      а на другом уровне другие?                                           248
   Как получить перечень документов, приведших данные
      подчиненного периодического регистра сведений к
      определенному состоянию?                                             250
   Как установить параметры запроса, если текст запроса заранее не
      известен?                                                            252
  Анализ данных                                                           253
   ф Как получить данные о товарах продаваемых вместе?                     253
   (D Как порекомендовать сопутствующие товары?                            254
   (D Как посмотреть, что будет покупаться в дальнейшем?                   255


Представление результатов отчетов                                      257
  Табличный документ, текстовый документ                                  257
   Как вывести результат запроса в табличный документ?                     257
   Как вывести данные в табличный документ с возможностью
      сворачивания и разворачивания данных по группировкам?                260
   Как при выводе данных в табличный документ свернуть все
      выводимые группировки?                                               260
   Как при выводе данных в табличный документ произвольно
      определить состав свернутых и развернутых группировок?               261
   (D Как выгрузить результат запроса с показом иерархии?                  261
   (D Где и как можно увидеть макет, автоматически генерируемый
      построителем отчета?                                                 262
   Ф Как из построителя отчета передать данные в сводную
      таблицу?                                                             263
   Отчет формируется построителем отчета. Как убрать одну из
      колонок, поместив ее данные в расшифровку другой?                    264




                                                                             11
Оглавление


             Как сохранить настройки построителя отчета до следующего
                открытия формы отчета?                                     266
             Как организовать показ примечаний в формируемом табличном
                документе?                                                 268
             ф Как обеспечить, чтобы при вводе на печать не печатались
                первая колонка и первая строка табличного документа
                «ДокументРезультат»?                                       271
             Ф Как обеспечить фиксацию верхней части табличного
                документа, генерируемого построителем отчета, по срезу
                шапки таблицы?                                             271
             ф Табличный документ формируется построителем отчета. Как
                при печати табличного документа обеспечить вывод шапки
                таблицы на каждой странице?                                272
             ф Как при выводе на печать «длинного» документа указать в
                колонтитулах страниц номер документа, дату и номер
                страницы?                                                  273
             ® Табличный документ формируется по макету, автоматически
                генерируемому построителем отчета. Как задать ориентацию
                страницы при печати?                                       273
             Табличный документ формируется построителем отчета. Как для
                всех выводимых числовых показателей установить вывод без
                дробной части?                                             274
             ф Как для построителя отчета совместить назначение своего
                макета и применение одного из стандартных макетов
                оформления?                                                276
             Как при получении данных из запроса обойти только итоговые
                записи?                                                    276
             Как при получении данных из запроса обойти только
                иерархические итоговые записи?                             278
             ф Как вывести картинку в табличный документ?                  279
             Как вывести картинку в табличный документ без изменения
                макета?                                                    280
             Как работать со сводной таблицей?                             280
             Как программно разместить данные в сводной таблице и
                оформить ее?                                               282
             Как создать печатную форму посредством текстового шаблона?    283
         Диаграммы                                                         287
             ф Как заполнить диаграмму данными?                            287
             Как заполнить данными измерительную диаграмму?                289
             ф Как вывести результат запроса в сводную диаграмму?          291
             ф Как заполнить диаграмму Ганта данными?                      293
             Как связать интервалы диаграммы Ганта?                        295
             Как обработать интерактивное изменение интервалов диаграммы
                Ганта?                                                     296
             Как разместить непериодические метки в диаграмме Ганта?       298
             Как выделить некоторые интервалы фона диаграммы Ганта?        300
         Географическая схема                                              301
             ф Как отобразить в форме файл географической схемы?           301
             ф Как отобразить в форме макет географической схемы?          301
             ф Как изменить масштаб географической схемы?                  301



12
Оглавление


   Как отобразить на географической схеме выбранный город?               302
   Как использовать таблицу значений в качестве источника
      данных географической схемы?                                       303

Администрирование                                                     305
  Запуск 1С:Предприятия из командной строки                             305
   © Как запустить 1С:Предприятие из командной строки?                   305
   Как из командной строки заставить 1С:Предприятие сделать
      выгрузку базы данных?                                              306
   Как из командной строки обновить изменения текущей
      конфигурации в конфигурации базы данных?                           306
   Как выполнить тестирование и исправление информационной
      базы без проверки ссылочной целостности в автоматическом
      режиме?                                                            307
   Как выполнить проверку конфигурации в автоматическом
      режиме с выводом результатов проверки в файл?                      307
   Как сократить журнал регистрации программно?                          309
   Как выгрузить модули прикладного решения в виде текстовых
      файлов из командной строки?                                        309
   Как загрузить в прикладное решение файлы справки,
      сохраненные в формате htm?                                         310
  Разное                                                                311
   ф Как поменять значение рабочей даты?                                 311
   Ф Как установить/снять монопольный режим?                             311
   ф Как внести запись в журнал регистрации?                             312
   ф Как получить данные о зарегистрированных пользователях
      информационной базы?                                               313
   ф Как определить общую системную информацию?                          314
   Как программно добавить пользователя в информационную
      базу?                                                             315
   Как создать собственный лог-файл для записи результатов
      работы внешней обработки?                                          317
   Как в форме отобразить список пользователей, которые работают
      с данной информационной базой?                                     318
   Как выгрузить журнал регистрации в XML-формате?                       318
   Как принудительно завершить работу всех пользователей
      информационной базы в клиент-серверном варианте работы?            320

Интеграция                                                            321
  Текстовый файл                                                        321
   ф Как выгрузить данные из справочника в текстовый файл?               321
   ф Как загрузить данные из текстового файла?                           322
   Работа с текстом. Модель последовательного доступа                    322
  XML                                                                   324
   ф Как из одной базы перенести документ в другую базу?                 324




                                                                            13
Оглавление


             Как можно сформировать XML-документ произвольной
                структуры?                                                          326
             Как сформировать XML-документ в строку?                                327
             Как можно обмениваться данными, используя XML-
                сериализацию через файлы других форматов?                           328
             Как можно загрузить XML документ произвольной структуры?               329
        DBF-файлы                                                                  331
             ф Как можно построить выгрузку-загрузку посредством файлов
                DBF?                                                                331
        Работа с HTML-документами                                                  332
             Ф Заполнение HTML-анкет                                                332
        Работа с файлами                                                           335
             ф Как организовать диалог выбора текстового файла?                     335
             Ф Как прочитать информацию о файле?                                    336
             ф Как получить список файлов в указанном каталоге?                     336
             Как переместить файл, выложенный на ftp к себе на локальный
                компьютер?                                                          337
             Как разделить большой файл на несколько файлов
                определенного размера?                                              337
             Как поместить файлы в архив?                                           338
             Как сравнить два текстовых файла?                                      338
             Как организовать контроль формирования файла внешним
                приложением?                                                        340
        ActiveX                                                                    341
             Ф Как использовать элементы управления ActiveX?                        341
         Макеты Active Document                                                     343
             Как сформировать новый договор на основании файла Microsoft
                Word?                                                               343
         Работа с Интернет                                                          345
             Работа с электронной почтой                                             345
               Как организовать работу с электронной почтой через установленного
               почтового клиента?                                                    345
               Как организовать работу с почтой без установленного почтового клиента
               на компьютере пользователя?                                           346
             Работа с файлами                                                        349
               Загрузка файлов по FTP                                                349
               Выполнение HTTP запроса                                               350
         Работа с СОМ-объектами                                                     351
             ф Как из одной базы 1С:Предприятие 8.0 перенести остатки
                товаров в другую базу, используя СОМ-соединение                     351
             Пример обращения к программе 1С:Предприятие 8.0 из модуля
                MS Excel через СОМ-соединение                                       353
             ф Как организовать считывание данных из файлов *.xls?                  355
             Как запустить макрос, записанный в книге Microsoft Excel?              356
             Как создать документ программы Microsoft Excel no
                оформлению, приведенному в другом документе?                        357
             ф Как выгрузить прайс-лист в документ программы Microsoft
                Word?                                                               359



14
Оглавление


   ф Как выполнить запрос к произвольной базе данных SQL?               362
  Automation Client/Server (OLE)                                       363
   ф Как из одной базы 1С:Предприятие 8.0 интерактивно
      заполнить документ в другой базе, используя Automation
      Client/Server (OLE)?                                              363
   Как из таблицы Excel загрузить список номенклатуры в
      1С:Предприятие с возможностью редактирования?                     364
  Обмен данными                                                        366
   <Э Как организовать работу удаленных складов?                        366
   Как при создании начального образа управлять тем, какие виды
      объектов перегружаются, а какие нет?                              369
   Как просмотреть объекты, для которых зарегистрированы
      изменения?                                                        371
   Как организовать обмен данными между произвольными
      конфигурациями 1С:Предприятие 8.0?                                372
   Как принудительно зарегистрировать изменения объектов?               379
  WEB-расширение                                                       380
   ф Как в форме списка номенклатуры отменить все
      установленные отборы?                                             380
   Как запретить перенос содержимого ячеек в форме списка
      расходных накладных?                                              382
   Как открыть список расходных накладных с отбором,
      установленным по определенному складу?                            384
   Как добавить кнопку для ввода документа на основании?                388

Указатель                                                            389




                                                                           15
Введение
        Идея написать эту книгу возникла у нас не случайно. Платформа
     системы «1С: Предприятие 8.0» специально ориентирована на то, что ее
     будут использовать не только как средство разработки, но и как
     инструмент быстрой доработки «на месте». В таких случаях специалисту
     важно в сжатые сроки решить конкретную задачу без долгого изучения
     всех возможностей системы.
         Как преподаватели учебного центра - мы, разумеется, только за то,
     чтобы специалист был изначально методологически и всесторонне
     «подкован». Но как практикующие разработчики, кроме всего прочего,
     зачастую и сами с большей радостью используем описанные примеры
     решения тех или иных задач, нежели пытаемся воссоздать их по памяти
     или по методическим материалам.
         Собственно говоря, именно с целью помочь в подобных ситуациях, и
     была написана эта книга. Основой ее создания послужил опыт
     преподавания «программистских курсов» по системе,           работа на
     конкретных внедрениях и активное общение в форумах, посвященных
     данному кругу проблем. Фактически книга составлена в результате
     анализа того, какие задачи приходится решать чаще всего как
     начинающим, так и продвинутым разработчикам.
         При подборе примеров мы исходили из того, что спектр навыков и
     знаний специалистов, которые будут работать с данным изданием, может
     быть очень широк. Поэтому пусть Вас не смущают некоторые особо
     «бородатые» советы или, наоборот, - отсутствие подробного описания тех
     или иных технологий. А для тех, кто практически не знаком с системой
     «1С:Предприятие 8.0», материал самых простых примеров, объясняющих
     азы использования объектов и механизмов системы, помечен
     специальным значком ф.
         Кроме этого, поскольку работа с настоящим изданием не требует
     досконального чтения всего материала, по тексту намеренно вставлены
     повторы некоторых приемов или предостережений в тех случаях, когда
     это имеет смысл.
         Также следует заметить, что мы стремились сделать именно сборник
     простых примеров, поэтому некоторые материалы вошли в издание в
     «разрезанном» виде. То есть вместо сложных и громоздких «сквозных»
     примеров, мы старались представить отдельные части, «кирпичики», из
     которых впоследствии можно собрать желаемое.




16
Введение


      Стиль изложения соответствует цели издания, поэтому материал
   предоставляется в форме вопросов и ответов, как, например, в
   следующем разделе:

Как работать с изданием?
       Решение данного вопроса - многовариантно.
       Можно читать классическим способом. От начала до конца, помечая
   или закладывая понравившиеся места. Впоследствии, при возникновении
   конкретных вопросов, зрительная память или закладки помогут найти
   нужное решение.
       Можно     читать   выборочно.    Любимая     поговорка    крутых
   программистов: «Мануал открывать надо уже в последний момент». То
   есть, проблема возникла - нашли раздел и попытались найти решение,
   или идею решения по аналогии. Но поговорку, на самом деле, мы совсем
   не одобряем!
       Можно вообще не читать. Не читать комментарии. А рассматривать
   издание как сборник «шпаргалок» кода, решающего те или иные
   вопросы.
       Остальные варианты использования издания или не очень нравятся
   авторам, или достаточно опасны. Например, не надо рассматривать эту
   книжку как замену полноценного обучения или работы с методическими
   материалами.




                                                                          17
Примитивные типы, системные
      функции

     Как явно указать нужную дату?
         Для указания нужной даты можно пользоваться:
             •    литералом вида ТГГГММДДччммсс' встроенного языка;
             • встроенной функцией преобразования значений Дата();
             •    литералом типа Дата языка запросов.
         В таблице ниже приводится ряд возможностей явного указания даты
      при помощи встроенного языка:

                            Выражение                   Значение результата
                                                               (тип)
      '20050308'                                     08.03.2005 0:00:00 (Дата)
      Дата(2005, 1,1)                                01.01.2005 0:00:00 (Дата)
      Дата(1, 1, 1)                                  01.01.0001 0:00:00 (Дата)
      Дата(2005, 1, 1, 10, 29, 50)                   01.01.2005 10:29:50 (Дата)

          В случае же, если в тексте запроса необходимо жестко указать некую
      дату - используется литерал ДАТАВРЕМЯ(). Например, поле со
      значением '01.01.2005 0:00:00' можно получить так:




Как проверить дату на пустое значение?
         Значение типа Дата не бывает «пустым». Если в явном виде
      значение переменной типа Дата не задано, она будет иметь значение по
      умолчанию: начало первого дня первого месяца первого года (00 часов
      00 минут 00 секунд). Поэтому проверку проще сделать так:




18
Примитивные типы, системные функции



Как сравнить две даты (дни)?
      Точность данных типа Дата - до секунды. А сравнивать нужно
   именно дни.
      Тогда проще предварительно для сравниваемых дат воспользоваться
   функцией, которая возвращает, например, дату начала дня. А потом уже
   сравнивать полученные значения.




Как прибавить к дате день, месяц?
       Так как тип Дата содержит дату и время с точностью до секунды, то
   для того чтобы к некоторой дате прибавить один день, нужно увеличить
   ее значение на количество секунд, содержащихся в одном дне:




      Для увеличения или уменьшения даты на некоторое количество
   месяцев, можно использовать:
          •    функции работы со значением типа Дата во встроенном
              языке;
          •    функции работы со значением типа Дата в запросах.
      В таблице ниже приводится ряд возможностей использования
   функций встроенного языка:

                      Выражение                           Значение результата
                                                                 (тип)
   ДобавитьМесяц(Дата(2005, 1, 31), 1)                 28.02.2005 0:00:00 (Дата)
   ДобавитьМесяц(Дата(2005, 2, 28), -1)                28.01.2005 0:00:00 (Дата)
   КонецМесяца(ДобавитьМесяц(Дата(2005, 2, 28), -1))   31.01.2005 23:59:59 (Дата)




                                                                                    19
Примитивные типы, системные функции


        А вот пример функции, добавляющей количество дней к исходной
     дате при помощи запроса:




        В тексте запроса используем функцию ДОБАВИТЬКДАТЕ(). В
     качестве параметров ей необходимо передать исходную дату, тип
     добавляемых периодов (в нашем случае жестко прописали «День») и
     количество добавляемых периодов.
        Первый и последний параметры передали запросу, считав их из
     параметров (заголовка) нашей функции.
        Далее запрос выполняется, и из него получаем значение выходного
     поля по первой (и единственной) строке.
        Результаты выполнения вышеприведенной функции будут такими:

         ПолучитьДень('20052802', 10) = 10.03.2005 0:00:00
         ПолучитьДень('20042802', 10) - 09.03.2004 0:00:00, поскольку 2004
     год был високосным!

Как можно проверить тип значения
переменной на равенство нужному?




20
Примитивные типы, системные функции


      ТипЗнч() - функция языка, возвращающая по значению его тип.
   Тип () - функция языка, возвращающая значение типа Тип по
   строковому имени типа.

Как очистить реквизит формы, имеющий
ссылочный тип?
      К     примеру,    реквизит     (имя    «Товар»)     имеет   тип
   СправочникСсылка.Номенклатура.      Для    очистки    значения   в
   связанном с ним элементе управления на форме, необходимо выполнить
   строку кода:




      То есть необходимо установить значение по умолчанию. А им, в
   данном случае, будет пустая ссылка на элемент справочника
   «Номенклатура».

Как очистить значение, имеющее тип
«Хранилище значения»?
      Очистить значение, записанное в реквизит или ресурс       (имя
   «РеквизитХранилище») можно следующим образом:




Как проверить тип значения, помещенного в
реквизит имеющий тип «Хранилище
значения»?
      По причинам не связанным с возможностями системы
   1С:Предприятие       8.0,   в реквизит  «Фотография»   (тип
   ХранилищеЗначения) справочника «Сотрудники» помещалась либо
   Строка (преобразованная к типу ХранилищеЗначения), либо
   Картинка (преобразованная к типу ХранилищеЗначения). Как
   проверить, что было записано?




                                                                        21
Примитивные типы, системные функции


        Проверку можно осуществить, используя следующие строки кода:




        Следует     отметить,    что     в    реквизит   имеющий     тип
     ХранилищеЗначения можно поместить только значение, имеющее тип
     ХранилищеЗначения. Работа со значением, помещенным в хранилище
     значения, может начаться только после его получения (метод
     Получить()). После получения значение «восстанавливает свой прежний
     тип». Если полученное значение равно Неопределено, то это означает,
     что никакое значение в реквизит не записывалось.

Как сжать данные, помещаемые в хранилище
значения?
        Допустим, в реквизит «СопроводительнаяИнформация» (тип
     значения - Хранилище значения) помещается значение переменной
     «ПомещаемоеЗначение». Нужно обеспечить максимальное сжатие
     данных закладываемого значения.




         Вторым параметром конструктора хранилища значения передается
      объект СжатиеДанных. Он тоже получен соответствующим
      конструктором, с указанием максимального уровня сжатия.




22
Примитивные типы, системные функции



Как предоставить пользователю возможность
выбора значения составного типа?




      Для реализации этой задачи необходимо воспользоваться
   конструктором объекта ОписаниеТипов. А для него необходимо
   передавать в качестве параметра массив разрешенных для вводимого
   значения типов значения.
      Когда конструктором «ОписаниеВозможныхТипов» собрано -
   применяем     функцию    для    вызова   диалога  ввода   данных
   ВвестиЗначение().
       Первым параметром функции необходимо указать доступную в
   данном модуле переменную для принятия введенного значения. Вторым
   - заголовок открываемого окна. Третьим - объект ОписаниеТипов.
       После ввода значения пользователем можно считать значение с
   переменной, переданной первым параметром.




                                                                       23
Примитивные типы, системные функции


Как применить округление при работе с
вычисляемыми числовыми полями в запросе?
        Например, составляется запрос для оценок средней цены продажи по
     данным регистра «Продажи». Для получения данных с точностью до
     двух знаков после запятой текст запроса может выглядеть следующим
     образом:




        Источником      для   запроса    является  виртуальная   таблица
     «РегистрНакопления.Продажи.Обороты», построенная по данным
     регистра в интервале между «ДатаНач» и «ДатаКон».
        В качестве выходных полей берем «Номенклатура» и результат
     деления     значения   полей     источника   «СтоимостьОборот»    и
     «КоличествоОборот». Причем оператором ВЫРАЗИТЬ() тип последнего
     поля приводится к примитивному типу ЧИСЛО с определенным
     форматом (длинна 15, точность 2).

Как вывести многострочное предупреждение?
        Переменные «Остаток» и «Зарезервировано» содержат значения,
     которые необходимо вывести в виде предупреждения. Кроме того, нужно
     еще вывести свободный остаток, вычисляемый по формуле:

        СвободныйОстаток = Остаток - Зарезервировано.

         Все это может быть выполнено следующим образом:




24
Примитивные типы, системные функции


      Процедура глобального контекста Предупреждение() выводит на
   экран модальное окно предупреждения. Текст предупреждения
   передается первым параметром, вторым - таймаут, содержащий указание
   количества секунд, через которое окно самостоятельно закроется (если
   раньше его не закроет пользователь), третьим - указывается заголовок
   окна.
      Многострочность предупреждения в нашем примере осуществляется
   за счет добавления значения ПС (перевод строки) системного набора
   значений СИМВОЛЫ в текст предупреждения.
      Обратите внимание на вычисление свободного остатка в скобках -
   для обеспечения корректности выполнения арифметических действий и
   преобразования данных к типу Строка.
      Кроме того, хотелось бы предупредить об опасности попыток
   применения процедуры Предупреждение() в ходе проведения
   документов. Проведение документов выполняется в транзакции, поэтому
   использование каких либо интерфейсных решений, останавливающих
   работу системы, является совершенно неприемлемым. В подобных
   случаях лучше информировать пользователей посредством Сообщить().

Как при выполнении обработки сообщить
пользователю текущее время?



      Метод ТекущаяДата() возвращает системную дату. Тип значения -
   Дата. В его значение входит и дата и время.
      Для получения представления только времени можно применяем
   функцию Формат().

Как вывести число прописью по-русски, но без
дробной части?
      Для этого используется функция ЧислоПрописью(). У нее могут
   быть указаны в качестве параметров:
          • преобразуемое число;
          • форматная строка;
          • параметры предмета исчисления (вид этой форматной
              строки определяется значением кода локализации).



                                                                          25
Примитивные типы, системные функции


         Все возможные варианты локализаций описаны в файле Locllnfo.txt,
     входящем в комплект поставки программы.
        Для решения нашей задачи можно использовать следующий текст:




        В форматной строке указываем код локализации - Русский(Россия).
     В параметрах предмета исчисления показываем, что дробная часть не
     должна содержать ни одного разряда.
        Для ВыводимоеЧисло = 234,4 результат будет: «Двести тридцать
     четыре».

Как вывести число прописью по-русски, с
указанием сотых в дробной части?




         В параметрах предмета исчисления указываем возможные спряжения
      и склонения слов «целая» и «сотая», а так же количество разрядов
      дробной части, которые будут выводиться прописью.
         В форматной строке указываются код языка локализации и
      необходимость вывода дробной части прописью.
         Для ВыводимоеЧисло - 123,45 результат будет: «Сто двадцать три
      целых сорок пять сотых».




26
Примитивные типы, системные функции



Как вывести прописью число килограммов с
указанием дробной части в граммах?




      В отличие от вышеприведенного примера здесь предметами
   исчисления являются килограммы и граммы, а количество разрядов
   дробной части - три.
      Для ВыводимоеЧисло = 12,345 результат будет: «Двенадцать
   килограммов триста сорок пять граммов»

Как долларовую сумму вывести прописью по-
английски?




      Для ВыводимоеЧисло = 1 232,45 результат будет: «One thousand two
   hundreds thirty two dollars 45 cents»

Какзагрузитьвнешнююкомпоненту?
      Загрузим компоненту, позволяющую работать со сканером штрих-
   кодов:




                                                                         27
Примитивные типы, системные функции




        В случае ошибки загрузки компоненты или создания объекта
     возникает    исключительная   ситуация,  которую рекомендуется
     отрабатывать с помощью конструкции Попытка.

Как выполнить команду операционной
системы?
        К примеру, требуется удалить все файлы из указанного каталога.
        Для реализации данной возможности достаточно выполнить
     следующую строку кода:




        Для просмотра доступных команд можно в командной строке
     системы выполнить команду «help».
        Вызвать командную строку, можно выполнив строку кода:




         Кроме этого, для запуска внешнего приложения (или открытия файла
      с использованием ассоциированного с ним приложения) может быть
      использован метод глобального контекста ЗапуститьПриложение(). В
      этом случае запуск приложения будет осуществляться непосредственно,
      минуя командный интерпретатор. Например:




28
Примитивные типы, системные функции



Как реализовать код процедуры в зависимости
от режима выполнения (на клиенте, на
сервере, во внешнем соединении) ?
      Если алгоритм должен выполняться по-разному в зависимости от
   места выполнения процедуры, то можно воспользоваться инструкциями
   препроцессора:




                                                                       29
Примитивные типы, системные функции



Как при групповой обработке объектов
реализовать стратегию «либо все, либо
ничего»?
        Требуется загрузить либо все данные по справочнику «Единицы
     измерения», либо, в случае возникновения ошибки, нужно чтобы ни один
     элемент не был записан.
        Для реализации стратегии «либо все, либо ничего» можно
     использовать следующий фрагмент кода:




         Если необходимо но мере накопления каких-либо признаков
      «искусственно» отменить действия, совершаемые в транзакции, можно
      использовать метод системы:




МО
Примитивные типы, системные функции


Как посчитать сумму по формуле сложного
процента?




      Возведение в степень реализуется функцией Pow(). Первым
   параметром передается основание степени, вторым - показатель степени.
      Замечание: кроме работы со степенями математический аппарат
   системы    позволяет    работать   с   корнями,    логарифмами      и
   тригонометрическими функциями.




                                                                           31
Универсальные коллекции

Массив
  В каких ситуациях обычно используются
массивы?
         Массив является универсальной коллекцией, то есть объектом,
      предназначенным для работы с временными наборами данных в течение
      сеанса работы пользователя.
         Необходимость в его использовании возникает, когда требуется
      работать с временным набором данных. Чаще всего это промежуточные
      операции обработки информации: подготовка отборов, реализация
      поиска, подготовка группирования, передача параметров и проч.
         Массивы могут создаваться оператором Новый или получаться в
      результате применения методов некоторых объектов.

     Как создать массив?
        Создание массивов чаще всего происходит посредством оператора
      Новый:




         где «СозданныйМассив» - имя переменной, которая будет содержать
      созданный объект типа Массив.        После создания к массиву можно
      добавлять элементы (произвольное количество).
         Если же мы хотим создать           массив с заранее определенной
      размерностью, это можно сделать так:




         В результате в переменной «СозданныйМассив» будет создан массив
      с десятью значениями. Для такого массива можно потом сразу
      обращаться к любому из десяти значений (начиная с нулевого по
      девятое) для записи или для чтения. А при необходимости к такому
      массиву можно так же еще добавлять новые элементы. Первый же
      добавленный элемент получит индекс «10».


32
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки
Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки

Contenu connexe

Similaire à Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки

13 14 15_индексирование
13 14 15_индексирование13 14 15_индексирование
13 14 15_индексированиеEvgeniy Golendyhin
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных23padopi
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных23padopi
 
Сергей Скроботов "Баннерокрутилка: разбираем на куски"
Сергей Скроботов "Баннерокрутилка: разбираем на куски"Сергей Скроботов "Баннерокрутилка: разбираем на куски"
Сергей Скроботов "Баннерокрутилка: разбираем на куски"Yandex
 
Ainl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAinl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAINL Conferences
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетуппAnastasia Snegina
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетуппAnastasia Snegina
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализSQALab
 
информатикаисогд
информатикаисогдинформатикаисогд
информатикаисогдpks11-1
 
"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
 
Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"
Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"
Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"Yandex
 
Сравнение диагностических возможностей анализаторов при проверке 64-битного кода
Сравнение диагностических возможностей анализаторов при проверке 64-битного кодаСравнение диагностических возможностей анализаторов при проверке 64-битного кода
Сравнение диагностических возможностей анализаторов при проверке 64-битного кодаTatyanazaxarova
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Technopark
 
Denis Bugarchev
Denis BugarchevDenis Bugarchev
Denis Bugarchevyaevents
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Yandex
 
Семь граблей краудсорсинга (7 crowdsourcing rakes)
Семь граблей краудсорсинга (7 crowdsourcing rakes)Семь граблей краудсорсинга (7 crowdsourcing rakes)
Семь граблей краудсорсинга (7 crowdsourcing rakes)Pavel Rastyannikov
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 

Similaire à Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки (20)

13 14 15_индексирование
13 14 15_индексирование13 14 15_индексирование
13 14 15_индексирование
 
Access 2000 1
Access 2000 1Access 2000 1
Access 2000 1
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
 
Bobrovckii
BobrovckiiBobrovckii
Bobrovckii
 
Сергей Скроботов "Баннерокрутилка: разбираем на куски"
Сергей Скроботов "Баннерокрутилка: разбираем на куски"Сергей Скроботов "Баннерокрутилка: разбираем на куски"
Сергей Скроботов "Баннерокрутилка: разбираем на куски"
 
Ainl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAinl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическая
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетупп
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетупп
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализ
 
информатикаисогд
информатикаисогдинформатикаисогд
информатикаисогд
 
"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс
 
Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"
Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"
Сергей Пузанков "Яндекс.Поиск. Разработка интерфейсов в распределенной команде"
 
Сравнение диагностических возможностей анализаторов при проверке 64-битного кода
Сравнение диагностических возможностей анализаторов при проверке 64-битного кодаСравнение диагностических возможностей анализаторов при проверке 64-битного кода
Сравнение диагностических возможностей анализаторов при проверке 64-битного кода
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9
 
ооп
оопооп
ооп
 
Denis Bugarchev
Denis BugarchevDenis Bugarchev
Denis Bugarchev
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
 
Семь граблей краудсорсинга (7 crowdsourcing rakes)
Семь граблей краудсорсинга (7 crowdsourcing rakes)Семь граблей краудсорсинга (7 crowdsourcing rakes)
Семь граблей краудсорсинга (7 crowdsourcing rakes)
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 

Габец А.П. Гончаров Д.И. 1С Предприятие 8.0. Простые примеры разработки

  • 1.
  • 2. А.П. Габец, Д.И. Гончаров 1С:Предприятие 8.0 Простые примеры разработки Москва ООО «1С-Паблишинг» 2005
  • 3. УДК 658.012.011.56:004.42 ББК 65.29 Г12 Габец Андрей Петрович, Гончаров Дмитрий Игоревич Г12 1С:Предприятие 8.0. Простые примеры разработки, М.: ООО «1С-Паблишинг», 2005. - 420 с: ил. ISBN 5-9677-0056-0 Книга представляет собой справочное пособие, иллюстрирующее простые примеры разработки алгоритмов на платформе «1С:Предприятие 8.0». Издание будет полезно начинающим разработчикам, администраторам, у которых на предприятии внедряется система, и продвинутым пользователям, которые хотят самостоятельно дорабатывать прикладные решения. Книга содержит большое количество практических примеров, сгруппированных по тематике использования. Кроме этого книга содержит подробный указатель на используемые в примерах свойства, методы и события встроенного языка. Данная книга дополняет, но не заменяет штатную документацию к программному продукту, входящую в комплект поставки, и позволяет более эффективно использовать возможности программы. Под редакцией М.Г. Радченко. Право тиражирования и распространения книги принадлежит фирме "1С-Паблишинг". Полное или частичное копирование материалов книги без письменного разрешения фирмы "1С-Паблишинг" запрещается. 4601546 025616 ISBN 5-9677-0056-0 ООО "1С-Па6лишингм, 2005
  • 4. ОГЛАВЛЕНИЕ Введение 16 Как работать с изданием? 17 Примитивные типы, системные функции 18 (D Как явно указать нужную дату? 18 Как проверить дату на пустое значение? 18 Как сравнить две даты (дни)? 19 Как прибавить к дате день, месяц? 19 Как можно проверить тип значения переменной на равенство нужному? 20 Как очистить реквизит формы, имеющий ссылочный тип? 21 Как очистить значение, имеющее тип «Хранилище значения»? 21 Как проверить тип значения, помещенного в реквизит имеющий тип «Хранилище значения»? 21 Как сжать данные, помещаемые в хранилище значения? 22 Как предоставить пользователю возможность выбора значения составного типа? 23 Как применить округление при работе с вычисляемыми числовыми полями в запросе? 24 Как вывести многострочное предупреждение? 24 Как при выполнении обработки сообщить пользователю текущее время? 25 Как вывести число прописью по-русски, но без дробной части? 25 Как вывести число прописью по-русски, с указанием сотых в дробной части? 26 Как вывести прописью число килограммов с указанием дробной части в граммах? 27 Как долларовую сумму вывести прописью по-английски? 27 Как загрузить внешнюю компоненту? 27 Как выполнить команду операционной системы? 28 Как реализовать код процедуры в зависимости от режима выполнения (на клиенте, на сервере, во внешнем соединении) ? 29 Как при групповой обработке объектов реализовать стратегию «либо все, либо ничего»? 30 Как посчитать сумму по формуле сложного процента? 31 Универсальные коллекции 32 Массив 32 (D В каких ситуациях обычно используются массивы? 32 ® Как создать массив? 32 ф Как создать многомерный массив? 33 ф Как добавить элементы в массив? 34
  • 5. Оглавление Ф Как определить размер массива? 34 ф Как обратиться к элементу массива? 34 ® Как перебрать элементы массива? 35 ф Как удалить элемент массива? 36 ф Как удалить все элементы массива? 37 Как удалить повторяющиеся элементы массива? 37 Как скопировать массив? 38 Как проверить, что два массива идентичны? 39 В массив выгружены данные, содержащие наименования контрагентов. Как их отсортировать? 40 Есть массив, в который выгружены значения типа СправочникСсылка.Номенклатура. Как удалить все пустые значения массива? 41 Как получить массив номенклатурных позиций, использованных в табличных частях «Номенклатура» и «Тара» накладной? 42 Есть две таблицы значений. Как получить массив совпадающих имен колонок? 43 Как в запросе сделать отбор по нескольким вариантам заполнения реквизита типа «ПеречислениеСсылка»? 44 Как из регистра сведений «РасчетчикиЗарплатыОрганизации» получить в виде массива всех расчетчиков зарплаты определенного подразделения организации? 45 Структура 47 Ф В каких ситуациях обычно используются объекты типа «Структура»? 47 ф Как создать структуру? 47 ф Как добавить элементы в структуру? 48 Ф Как обратиться к элементу структуры? 48 ф Как перебрать элементы структуры? 49 ф Как удалить элемент структуры? 50 Как в структуре установить значение для элемента с определенным ключом? 50 Как получить в структуру многомерные данные? Как собрать информацию по установленным в форме журнала отборам? 51 Как определить, есть ли в структуре элемент с ключом «Контрагент», и если есть, но содержит пустое значение справочника или Неопределено — удалить этот элемент? 52 Как из табличной части «Товары» документа получить все строки, где значение реквизита «Цена» равно нулю, а значение реквизита «СтавкаНДС» равно значению «НДС 18» перечисления «СтавкиНДС»? 53 Как получить данные о текущей учетной политике бухгалтерского учета организации из периодического регистра сведений на заданную дату? 53 Как сформировать структуру названий реквизитов табличной части произвольного документа? 55 Как получить запросом данные табличной части документа, имея структуру названий реквизитов табличной части? 55 Соответствие 57
  • 6. Оглавление ф В каких ситуациях обычно используются объекты типа «Соответствие»? 57 ф Как создать соответствие? 57 ф Как добавить элементы в соответствие? 57 ф Как обратиться к элементу соответствия? 58 Ф Как перебрать элементы соответствия? 58 ф Как удалить элемент соответствия? 59 Как получить данные из соответствия? 59 Как получить многоуровневое соответствие видов расчетов, обладающих базовыми видами расчетов? 60 Список значений, таблица значений, дерево значений 63 ф В каких ситуациях обычно используются списки значений, таблицы значений, дерево значений? 63 ф Как создать список значений? 64 ф Как добавить элементы в список значений? 64 ф Как найти элемент списка значений? 65 ф Как обратиться к элементу списка значений? 65 ф Как перебрать элементы списка значений? 66 ф Как удалить элемент списка значений? 66 ф Как создать таблицу значений и заполнить ее поля? 67 ф Как найти значение в таблице значений? 68 ® Как перебрать строки таблицы значений? 69 ф Как удалить строки (колонки) таблицы значений? 69 Как заполнить таблицу значений, если имена колонок содержатся в переменных? 71 Как заполнить всю колонку таблицы значений нужным значением? 71 Как таблицу значений «ТаблицаПолучатель» заполнить данными таблицы значений «ИсходнаяТаблица»? 72 Как добавить колонки к таблице значений «ТаблицаЗначений» с ограничениями по типу? 74 Как изменить тип значения колонки таблицы значений, полученной выгрузкой из запроса? 75 Как самостоятельно заполнить дерево значений? 76 Прикладные объекты 78 Справочники 78 Ф Как создать элемент (группу) справочника? 78 ф Как найти элемент справочника? 80 ф Как удалить элемент справочника? 81 ф Как перебрать элементы справочника? 82 ф Как выбрать все элементы из определенной группы? 83 Ф Как перебрать элементы подчиненного справочника с помощью запроса? 85 Ф Как перебрать элементы подчиненного справочника с помощью выборки справочника? 86 ф Как открыть форму списка (элемента) справочника? 86
  • 7. Оглавление ф Как добавить запись в табличную часть элемента справочника? 87 ф Как удалить строки из табличной части справочника? 87 Ф Как перебрать строки табличной части справочника? 88 Ф Как создать элемент в нужной группе? 89 Как узнать, есть ли у текущего элемента подчиненные? 90 Как узнать количество подчиненных элементов у выбранного элемента справочника? 91 Как узнать количество подчиненных элементов у выбранного элемента справочника, если количество подчиненных справочников больше чем один? 93 Как получить всех родителей выбранного элемента справочника? 94 Как получить запросом «полный» код элементов справочника, если тип кода - Строка? 96 Как получить все элементы справочника, содержащие в наименовании определенную подстроку, со всей иерархией, в которую они входят? 97 Как найти все элементы справочника, в которых не заполнен строковый реквизит? 98 Как перенести все элементы справочника «Контрагенты» из одной группы в другую? 99 Как организовать программный выбор элемента справочника? 100 Как сохранить фотографию сотрудника в справочнике «Сотрудники»? 102 Документы 104 ® Как создать новый документ? 104 ф Как найти документ? 104 Ф Как открыть форму документа? 105 ф Как изменить значение реквизита и записать документ? 106 Ф Как добавить строку в табличную часть документа, имея ссылку на документ? 107 ф Как удалить строки из табличной части документа? 107 ф Как перебрать строки документа? 108 ф Как выгрузить табличную часть документа? 108 ф Как посчитать итог в табличной части документа? 108 ф Как провести документ? 109 ф Как перебрать документы? 109 ф Как пометить на удаление все приходные накладные? 111 ф Как, имея ссылку на документ, создать в базе его копию? 111 ф Как, имея ссылку на документ, прочитать его движения по регистру? 112 Как определить, по каким регистрам документ выполнил движения? 113 Как в табличной части документа удалить строки с нулевым значением реквизита «Количество»? 115 Как очистить колонку «СтавкаНДС» в табличном поле «Товары» уже заполненного документа? 116 Как заполнить значения свойств нового документа на основании существующего? 117
  • 8. Оглавление Как получить перечень приходных накладных, в которых не заполнены номенклатурные позиции? 118 Как на дату расходной накладной определить курс валюты управленческого учета? Валюта управленческого учета храниться в периодическом регистре сведений 119 Как из формы документа вызвать его неоперативное проведение? 120 Как в обработке проведения получить остатки, актуальные на позицию документа? 121 Как определить количество документов и количество разных значений реквизита в таблице записей документа? 122 В последовательность «ПартионныйУчет» добавлено измерение «Организация». Как теперь получить данные по границам последовательности для каждого значения этого измерения? 123 Хранение сведений 124 ® Как добавить запись в непериодический независимый регистр сведений? 124 ф Как считать содержимое непериодического независимого регистра сведений? «СобственныеКонтрагенты»? 125 Ф Как удалить все записи из независимого регистра сведений? 126 ф Как удалить записи независимого регистра сведений с отбором по конкретной организации? 126 ф Как добавить запись в периодический независимый регистр сведений? 127 ф Как прочитать (изменить) записи в периодическом независимом регистре сведений? 128 ф Как удалить записи в периодическом независимом регистре сведений? 128 Как в периодическом независимом регистре сведений «КурсыВалют» удалить все записи по валютам с наименованиями «EUR» и «USD», период которых меньше 01 января 2005 года? 129 Как прочитать данные, актуальные на определенную дату, из регистра сведений «Курсы валют» с отбором по нескольким валютам (отбор по измерениям)? 131 Как поменять период у записей периодического независимого регистра, соответствующих ряду условий? 132 Как «сделать периодическим» реквизит уже заполненного справочника? 134 ф Как добавить записи в регистр сведений, подчиненный регистратору? 137 ф Как прочитать (изменить) записи в регистре сведений, подчиненном регистратору? 138 ф Как удалить записи из регистра сведений, подчиненного регистратору? 139 Бухгалтерский учет 140 Ф Как в регистре бухгалтерии сформировать проводки? 140 ф Как получить остаток по счету? 142 ф Как получить обороты по счету? 143 ф Как получить остатки но счетам? 143
  • 9. Оглавление Ф Как перенести остаток со счета на счет? 144 Как найти первый документ, приведший к появлению кредитового остатка на счете? 145 Как выбрать все счета, в аналитике которых присутствуют либо вид субконто «Контрагент», либо вид субконто «Договор»? 146 Как выбрать все счета, в аналитике которых присутствуют как вид субконто «Контрагент», так и вид субконто «Номенклатура»? 147 Как добавить новый вид субконто к счету? 147 Как из регистра бухгалтерии «Хозрасчетный» получить обороты только по валютным счетам? 149 Как выбрать в регистре бухгалтерии «Хозрасчетный» обороты по «60-ым» счетам, исключив внутренние обороты между ними? 151 Как реализовать метод «красного сторно» для регистра бухгалтерии? 152 Сложные периодические расчеты 154 (D Как получить сумму начисления по конкретному виду расчета указанному сотруднику в указанном периоде? 154 (D Как получить сумму всех начислений указанному сотруднику в указанном периоде? 155 Как получить таблицу перерасчетов по перерасчетам нескольких регистров? 156 Как для документа «НачислениеЗарплатыРаботникам» определить номера строк записей полностью вытесненных видов расчета? 157 Как сформировать расчетный листок сотрудника? 158 Как организовать сторнирование уже произведенных расчетов прошлых периодов? 159 Бизнес-процессы 162 Как определить бизнес процесс, в котором количество последовательных этапов определяется индивидуально на момент старта экземпляра процесса? 162 Как при работе с бизнес процессами отказаться от стандартного способа формирования задачи и сформировать ее программно? 167 Прочие прикладные объекты 169 ф Как, не открывая форму внешней обработки, выполнить ее процедуру для определенного объекта? 169 (D Как быстро получить информацию, по всем объектам, находящимся в компетенции конкретного менеджера (элемент справочника «Пользователи») по продажам? 169 Формы и элементы управления 172 Работа с формами 172 (D Как открыть форму документа? 172 Ф Как открыть форму внешней обработки? 172 (D Как отрыть форму отчета так, чтобы она не перекрывала собой ту форму, из которой она открыта? 173
  • 10. Оглавление ® Как открыть форму отчета на весь экран? 173 Как из формы документа открыть форму списка данного документа, спозиционировавшись на нем же? 174 ® В документе есть реквизит «Контрагент». Как открыть форму подчиненного ему справочника «ДоговорыКонтрагентов»? 175 ф Как в форме отобразить картинку, сохраненную в реквизите справочника? 176 ф Как в журнале документов «УчетКадров» отобрать только документы «ПриемНаРаботу»? 176 ф Как узнать интервал дат в открытом текущем журнале? 177 Как при открытии справочника сделать отбор по контрагентам, входящим в список? 177 Как обеспечить, чтобы для выбора значения покупателя в расходной накладной справочник контрагенты открывался сразу с открытой группой «Покупатели»? 178 Табличное поле 181 ф Как запретить пользователю изменять порядок следования колонок в табличном поле? 181 Ф Как запретить пользователю изменять любые настройки колонок табличного поля? 181 ф Как вывести информацию о том, какой отбор установлен в журнале документов? 182 ф Как в форме справочника установить курсор на элемент с известным наименованием? 182 ф Как в форме списка сделать отбор по значению реквизита? 183 ф Как запретить выдачу сообщения: «Введенные данные не отображены в списке, так как не соответствуют отбору» при добавлении новых элементов в справочник? 184 ф Как заполнить ячейку табличного поля данными? 185 Как изменить цвет фона ячейки табличного поля в зависимости от значения, выводимого в нее? 186 Как в табличное поле «ВыбранныеКонтрагенты» добавить новую колонку «ОсновнойДоговор», заполнить ее значения и дать возможность открытия этих значений? 187 Как задать список выбора для колонки «ВидДокумента» табличного поля? 189 Как обеспечить возможность отбора и сортировки данных по реквизитам, не отображаемым в табличном поле формы списка справочника? 190 Как реализовать перетаскивание между элементами управления? 190 Как вывести остатки на складах в списке номенклатуры? 193 Другие элементы управления 194 ® В форме есть панель со страницами. Как разместить картинку на закладке? 194 Ф Как обеспечить, чтобы при открытии формы уже записанного элемента справочника «Контрагенты» активной была закладка «СчетаИДоговоры» панели «Панель»? 195 Как организовать выбор из нескольких списков документов для открытия? 195 Как можно организовать подстановку обращения к персоне? 197
  • 11. Оглавление Как в командной панели создать подменю с кнопками? 198 Как созданной кнопке назначить «горячие клавиши»? 200 Как реализовать заполнение возможных значений поля выбора «ОбрабатываемаяТабличнаяЧасть» при заполнении поля ввода «ОбрабатываемыйДокумент»? 201 ф Если пользователь указал несколько дат в поле календаря - как их перебрать? 202 ф Как организовать работу с индикатором? 203 Как у элемента управления сменить источник данных? 205 ф Как задать представление даты, отображаемое в поле ввода по-умолчанию? 206 Ф Как вывести текст в поле картинки в том случае, если картинка не выбрана? 209 Ф Как открыть пользователю стандартный диалог выбора цвета? 211 Как заполнить список в форме данными запроса? 212 ф Как отобразить в форме файл графической схемы? 212 Интерфейсы, стили 213 ф Как задать различные стили 1С:Предприятия для различных категорий пользователей? 213 Есть список имен интерфейсов с пометками. Как сделать помеченные интерфейсы видимыми? 214 Как из формы обработки отключить глобальный обработчик ожиданий? 215 Запросы, отчеты 216 Запросы 216 Как получить данные из табличной части документов? 216 Как получить данные из табличной части документов и представить их в иерархическом виде? 217 Как подсчитать количество одинаковых элементов в выбираемых данных? 218 Как применять условия для отбора по значениям полей, вычисленных как результат агрегатной функции? 219 Как ограничить выборку из виртуальной таблицы? 220 Как просуммировать данные по одинаковым значениям одного из полей выборки? 221 Как получить только те записи, в которых значение определенного поля превышает указанное значение? 223 Как обратиться к подчиненным полям в запросе? 224 Как объединить результаты нескольких запросов? 225 Как выбрать данные из двух таблиц, удовлетворяющие определенному условию? 226 Как дополнить данные одной таблицы данными, выбранными из другой таблицы по определенному условию? 227 Как объединить данные из двух таблиц по определенному условию? 228 Как вывести некоторое значение вместо NULL в запросе? 231 10
  • 12. Оглавление Как вместе с данными некоторой таблицы получить общие итоги из этой же таблицы? 231 Как получить иерархические итоги по группе справочника? 233 Как по состоянию на заданную дату по регистру «ОстаткиНаСкладе» найти последний документ «ПоступлениеТоваровУслуг», по которому приходила номенклатура? 235 Как подсчитать количество записей с одинаковым значением некоторого поля? 237 Как в итоговых записях вывести количество различных записей? 239 Как узнать количество записей в результате запроса? 240 Как проверить достаточность остатков товаров на складах, указанных в документе? 240 Как в запросе осуществить отбор по значению перечисления? 243 Как получить курсы валют на две интересующие даты? 245 Как одним запросом получить таблицу расхождений курсов взаиморасчетов всех выписанных документов «ЗаказПокупателя» с официальным курсом? 246 Как написать запрос таким образом, чтобы на определенном уровне иерархии запроса считались одни итоговые функции, а на другом уровне другие? 248 Как получить перечень документов, приведших данные подчиненного периодического регистра сведений к определенному состоянию? 250 Как установить параметры запроса, если текст запроса заранее не известен? 252 Анализ данных 253 ф Как получить данные о товарах продаваемых вместе? 253 (D Как порекомендовать сопутствующие товары? 254 (D Как посмотреть, что будет покупаться в дальнейшем? 255 Представление результатов отчетов 257 Табличный документ, текстовый документ 257 Как вывести результат запроса в табличный документ? 257 Как вывести данные в табличный документ с возможностью сворачивания и разворачивания данных по группировкам? 260 Как при выводе данных в табличный документ свернуть все выводимые группировки? 260 Как при выводе данных в табличный документ произвольно определить состав свернутых и развернутых группировок? 261 (D Как выгрузить результат запроса с показом иерархии? 261 (D Где и как можно увидеть макет, автоматически генерируемый построителем отчета? 262 Ф Как из построителя отчета передать данные в сводную таблицу? 263 Отчет формируется построителем отчета. Как убрать одну из колонок, поместив ее данные в расшифровку другой? 264 11
  • 13. Оглавление Как сохранить настройки построителя отчета до следующего открытия формы отчета? 266 Как организовать показ примечаний в формируемом табличном документе? 268 ф Как обеспечить, чтобы при вводе на печать не печатались первая колонка и первая строка табличного документа «ДокументРезультат»? 271 Ф Как обеспечить фиксацию верхней части табличного документа, генерируемого построителем отчета, по срезу шапки таблицы? 271 ф Табличный документ формируется построителем отчета. Как при печати табличного документа обеспечить вывод шапки таблицы на каждой странице? 272 ф Как при выводе на печать «длинного» документа указать в колонтитулах страниц номер документа, дату и номер страницы? 273 ® Табличный документ формируется по макету, автоматически генерируемому построителем отчета. Как задать ориентацию страницы при печати? 273 Табличный документ формируется построителем отчета. Как для всех выводимых числовых показателей установить вывод без дробной части? 274 ф Как для построителя отчета совместить назначение своего макета и применение одного из стандартных макетов оформления? 276 Как при получении данных из запроса обойти только итоговые записи? 276 Как при получении данных из запроса обойти только иерархические итоговые записи? 278 ф Как вывести картинку в табличный документ? 279 Как вывести картинку в табличный документ без изменения макета? 280 Как работать со сводной таблицей? 280 Как программно разместить данные в сводной таблице и оформить ее? 282 Как создать печатную форму посредством текстового шаблона? 283 Диаграммы 287 ф Как заполнить диаграмму данными? 287 Как заполнить данными измерительную диаграмму? 289 ф Как вывести результат запроса в сводную диаграмму? 291 ф Как заполнить диаграмму Ганта данными? 293 Как связать интервалы диаграммы Ганта? 295 Как обработать интерактивное изменение интервалов диаграммы Ганта? 296 Как разместить непериодические метки в диаграмме Ганта? 298 Как выделить некоторые интервалы фона диаграммы Ганта? 300 Географическая схема 301 ф Как отобразить в форме файл географической схемы? 301 ф Как отобразить в форме макет географической схемы? 301 ф Как изменить масштаб географической схемы? 301 12
  • 14. Оглавление Как отобразить на географической схеме выбранный город? 302 Как использовать таблицу значений в качестве источника данных географической схемы? 303 Администрирование 305 Запуск 1С:Предприятия из командной строки 305 © Как запустить 1С:Предприятие из командной строки? 305 Как из командной строки заставить 1С:Предприятие сделать выгрузку базы данных? 306 Как из командной строки обновить изменения текущей конфигурации в конфигурации базы данных? 306 Как выполнить тестирование и исправление информационной базы без проверки ссылочной целостности в автоматическом режиме? 307 Как выполнить проверку конфигурации в автоматическом режиме с выводом результатов проверки в файл? 307 Как сократить журнал регистрации программно? 309 Как выгрузить модули прикладного решения в виде текстовых файлов из командной строки? 309 Как загрузить в прикладное решение файлы справки, сохраненные в формате htm? 310 Разное 311 ф Как поменять значение рабочей даты? 311 Ф Как установить/снять монопольный режим? 311 ф Как внести запись в журнал регистрации? 312 ф Как получить данные о зарегистрированных пользователях информационной базы? 313 ф Как определить общую системную информацию? 314 Как программно добавить пользователя в информационную базу? 315 Как создать собственный лог-файл для записи результатов работы внешней обработки? 317 Как в форме отобразить список пользователей, которые работают с данной информационной базой? 318 Как выгрузить журнал регистрации в XML-формате? 318 Как принудительно завершить работу всех пользователей информационной базы в клиент-серверном варианте работы? 320 Интеграция 321 Текстовый файл 321 ф Как выгрузить данные из справочника в текстовый файл? 321 ф Как загрузить данные из текстового файла? 322 Работа с текстом. Модель последовательного доступа 322 XML 324 ф Как из одной базы перенести документ в другую базу? 324 13
  • 15. Оглавление Как можно сформировать XML-документ произвольной структуры? 326 Как сформировать XML-документ в строку? 327 Как можно обмениваться данными, используя XML- сериализацию через файлы других форматов? 328 Как можно загрузить XML документ произвольной структуры? 329 DBF-файлы 331 ф Как можно построить выгрузку-загрузку посредством файлов DBF? 331 Работа с HTML-документами 332 Ф Заполнение HTML-анкет 332 Работа с файлами 335 ф Как организовать диалог выбора текстового файла? 335 Ф Как прочитать информацию о файле? 336 ф Как получить список файлов в указанном каталоге? 336 Как переместить файл, выложенный на ftp к себе на локальный компьютер? 337 Как разделить большой файл на несколько файлов определенного размера? 337 Как поместить файлы в архив? 338 Как сравнить два текстовых файла? 338 Как организовать контроль формирования файла внешним приложением? 340 ActiveX 341 Ф Как использовать элементы управления ActiveX? 341 Макеты Active Document 343 Как сформировать новый договор на основании файла Microsoft Word? 343 Работа с Интернет 345 Работа с электронной почтой 345 Как организовать работу с электронной почтой через установленного почтового клиента? 345 Как организовать работу с почтой без установленного почтового клиента на компьютере пользователя? 346 Работа с файлами 349 Загрузка файлов по FTP 349 Выполнение HTTP запроса 350 Работа с СОМ-объектами 351 ф Как из одной базы 1С:Предприятие 8.0 перенести остатки товаров в другую базу, используя СОМ-соединение 351 Пример обращения к программе 1С:Предприятие 8.0 из модуля MS Excel через СОМ-соединение 353 ф Как организовать считывание данных из файлов *.xls? 355 Как запустить макрос, записанный в книге Microsoft Excel? 356 Как создать документ программы Microsoft Excel no оформлению, приведенному в другом документе? 357 ф Как выгрузить прайс-лист в документ программы Microsoft Word? 359 14
  • 16. Оглавление ф Как выполнить запрос к произвольной базе данных SQL? 362 Automation Client/Server (OLE) 363 ф Как из одной базы 1С:Предприятие 8.0 интерактивно заполнить документ в другой базе, используя Automation Client/Server (OLE)? 363 Как из таблицы Excel загрузить список номенклатуры в 1С:Предприятие с возможностью редактирования? 364 Обмен данными 366 <Э Как организовать работу удаленных складов? 366 Как при создании начального образа управлять тем, какие виды объектов перегружаются, а какие нет? 369 Как просмотреть объекты, для которых зарегистрированы изменения? 371 Как организовать обмен данными между произвольными конфигурациями 1С:Предприятие 8.0? 372 Как принудительно зарегистрировать изменения объектов? 379 WEB-расширение 380 ф Как в форме списка номенклатуры отменить все установленные отборы? 380 Как запретить перенос содержимого ячеек в форме списка расходных накладных? 382 Как открыть список расходных накладных с отбором, установленным по определенному складу? 384 Как добавить кнопку для ввода документа на основании? 388 Указатель 389 15
  • 17. Введение Идея написать эту книгу возникла у нас не случайно. Платформа системы «1С: Предприятие 8.0» специально ориентирована на то, что ее будут использовать не только как средство разработки, но и как инструмент быстрой доработки «на месте». В таких случаях специалисту важно в сжатые сроки решить конкретную задачу без долгого изучения всех возможностей системы. Как преподаватели учебного центра - мы, разумеется, только за то, чтобы специалист был изначально методологически и всесторонне «подкован». Но как практикующие разработчики, кроме всего прочего, зачастую и сами с большей радостью используем описанные примеры решения тех или иных задач, нежели пытаемся воссоздать их по памяти или по методическим материалам. Собственно говоря, именно с целью помочь в подобных ситуациях, и была написана эта книга. Основой ее создания послужил опыт преподавания «программистских курсов» по системе, работа на конкретных внедрениях и активное общение в форумах, посвященных данному кругу проблем. Фактически книга составлена в результате анализа того, какие задачи приходится решать чаще всего как начинающим, так и продвинутым разработчикам. При подборе примеров мы исходили из того, что спектр навыков и знаний специалистов, которые будут работать с данным изданием, может быть очень широк. Поэтому пусть Вас не смущают некоторые особо «бородатые» советы или, наоборот, - отсутствие подробного описания тех или иных технологий. А для тех, кто практически не знаком с системой «1С:Предприятие 8.0», материал самых простых примеров, объясняющих азы использования объектов и механизмов системы, помечен специальным значком ф. Кроме этого, поскольку работа с настоящим изданием не требует досконального чтения всего материала, по тексту намеренно вставлены повторы некоторых приемов или предостережений в тех случаях, когда это имеет смысл. Также следует заметить, что мы стремились сделать именно сборник простых примеров, поэтому некоторые материалы вошли в издание в «разрезанном» виде. То есть вместо сложных и громоздких «сквозных» примеров, мы старались представить отдельные части, «кирпичики», из которых впоследствии можно собрать желаемое. 16
  • 18. Введение Стиль изложения соответствует цели издания, поэтому материал предоставляется в форме вопросов и ответов, как, например, в следующем разделе: Как работать с изданием? Решение данного вопроса - многовариантно. Можно читать классическим способом. От начала до конца, помечая или закладывая понравившиеся места. Впоследствии, при возникновении конкретных вопросов, зрительная память или закладки помогут найти нужное решение. Можно читать выборочно. Любимая поговорка крутых программистов: «Мануал открывать надо уже в последний момент». То есть, проблема возникла - нашли раздел и попытались найти решение, или идею решения по аналогии. Но поговорку, на самом деле, мы совсем не одобряем! Можно вообще не читать. Не читать комментарии. А рассматривать издание как сборник «шпаргалок» кода, решающего те или иные вопросы. Остальные варианты использования издания или не очень нравятся авторам, или достаточно опасны. Например, не надо рассматривать эту книжку как замену полноценного обучения или работы с методическими материалами. 17
  • 19. Примитивные типы, системные функции Как явно указать нужную дату? Для указания нужной даты можно пользоваться: • литералом вида ТГГГММДДччммсс' встроенного языка; • встроенной функцией преобразования значений Дата(); • литералом типа Дата языка запросов. В таблице ниже приводится ряд возможностей явного указания даты при помощи встроенного языка: Выражение Значение результата (тип) '20050308' 08.03.2005 0:00:00 (Дата) Дата(2005, 1,1) 01.01.2005 0:00:00 (Дата) Дата(1, 1, 1) 01.01.0001 0:00:00 (Дата) Дата(2005, 1, 1, 10, 29, 50) 01.01.2005 10:29:50 (Дата) В случае же, если в тексте запроса необходимо жестко указать некую дату - используется литерал ДАТАВРЕМЯ(). Например, поле со значением '01.01.2005 0:00:00' можно получить так: Как проверить дату на пустое значение? Значение типа Дата не бывает «пустым». Если в явном виде значение переменной типа Дата не задано, она будет иметь значение по умолчанию: начало первого дня первого месяца первого года (00 часов 00 минут 00 секунд). Поэтому проверку проще сделать так: 18
  • 20. Примитивные типы, системные функции Как сравнить две даты (дни)? Точность данных типа Дата - до секунды. А сравнивать нужно именно дни. Тогда проще предварительно для сравниваемых дат воспользоваться функцией, которая возвращает, например, дату начала дня. А потом уже сравнивать полученные значения. Как прибавить к дате день, месяц? Так как тип Дата содержит дату и время с точностью до секунды, то для того чтобы к некоторой дате прибавить один день, нужно увеличить ее значение на количество секунд, содержащихся в одном дне: Для увеличения или уменьшения даты на некоторое количество месяцев, можно использовать: • функции работы со значением типа Дата во встроенном языке; • функции работы со значением типа Дата в запросах. В таблице ниже приводится ряд возможностей использования функций встроенного языка: Выражение Значение результата (тип) ДобавитьМесяц(Дата(2005, 1, 31), 1) 28.02.2005 0:00:00 (Дата) ДобавитьМесяц(Дата(2005, 2, 28), -1) 28.01.2005 0:00:00 (Дата) КонецМесяца(ДобавитьМесяц(Дата(2005, 2, 28), -1)) 31.01.2005 23:59:59 (Дата) 19
  • 21. Примитивные типы, системные функции А вот пример функции, добавляющей количество дней к исходной дате при помощи запроса: В тексте запроса используем функцию ДОБАВИТЬКДАТЕ(). В качестве параметров ей необходимо передать исходную дату, тип добавляемых периодов (в нашем случае жестко прописали «День») и количество добавляемых периодов. Первый и последний параметры передали запросу, считав их из параметров (заголовка) нашей функции. Далее запрос выполняется, и из него получаем значение выходного поля по первой (и единственной) строке. Результаты выполнения вышеприведенной функции будут такими: ПолучитьДень('20052802', 10) = 10.03.2005 0:00:00 ПолучитьДень('20042802', 10) - 09.03.2004 0:00:00, поскольку 2004 год был високосным! Как можно проверить тип значения переменной на равенство нужному? 20
  • 22. Примитивные типы, системные функции ТипЗнч() - функция языка, возвращающая по значению его тип. Тип () - функция языка, возвращающая значение типа Тип по строковому имени типа. Как очистить реквизит формы, имеющий ссылочный тип? К примеру, реквизит (имя «Товар») имеет тип СправочникСсылка.Номенклатура. Для очистки значения в связанном с ним элементе управления на форме, необходимо выполнить строку кода: То есть необходимо установить значение по умолчанию. А им, в данном случае, будет пустая ссылка на элемент справочника «Номенклатура». Как очистить значение, имеющее тип «Хранилище значения»? Очистить значение, записанное в реквизит или ресурс (имя «РеквизитХранилище») можно следующим образом: Как проверить тип значения, помещенного в реквизит имеющий тип «Хранилище значения»? По причинам не связанным с возможностями системы 1С:Предприятие 8.0, в реквизит «Фотография» (тип ХранилищеЗначения) справочника «Сотрудники» помещалась либо Строка (преобразованная к типу ХранилищеЗначения), либо Картинка (преобразованная к типу ХранилищеЗначения). Как проверить, что было записано? 21
  • 23. Примитивные типы, системные функции Проверку можно осуществить, используя следующие строки кода: Следует отметить, что в реквизит имеющий тип ХранилищеЗначения можно поместить только значение, имеющее тип ХранилищеЗначения. Работа со значением, помещенным в хранилище значения, может начаться только после его получения (метод Получить()). После получения значение «восстанавливает свой прежний тип». Если полученное значение равно Неопределено, то это означает, что никакое значение в реквизит не записывалось. Как сжать данные, помещаемые в хранилище значения? Допустим, в реквизит «СопроводительнаяИнформация» (тип значения - Хранилище значения) помещается значение переменной «ПомещаемоеЗначение». Нужно обеспечить максимальное сжатие данных закладываемого значения. Вторым параметром конструктора хранилища значения передается объект СжатиеДанных. Он тоже получен соответствующим конструктором, с указанием максимального уровня сжатия. 22
  • 24. Примитивные типы, системные функции Как предоставить пользователю возможность выбора значения составного типа? Для реализации этой задачи необходимо воспользоваться конструктором объекта ОписаниеТипов. А для него необходимо передавать в качестве параметра массив разрешенных для вводимого значения типов значения. Когда конструктором «ОписаниеВозможныхТипов» собрано - применяем функцию для вызова диалога ввода данных ВвестиЗначение(). Первым параметром функции необходимо указать доступную в данном модуле переменную для принятия введенного значения. Вторым - заголовок открываемого окна. Третьим - объект ОписаниеТипов. После ввода значения пользователем можно считать значение с переменной, переданной первым параметром. 23
  • 25. Примитивные типы, системные функции Как применить округление при работе с вычисляемыми числовыми полями в запросе? Например, составляется запрос для оценок средней цены продажи по данным регистра «Продажи». Для получения данных с точностью до двух знаков после запятой текст запроса может выглядеть следующим образом: Источником для запроса является виртуальная таблица «РегистрНакопления.Продажи.Обороты», построенная по данным регистра в интервале между «ДатаНач» и «ДатаКон». В качестве выходных полей берем «Номенклатура» и результат деления значения полей источника «СтоимостьОборот» и «КоличествоОборот». Причем оператором ВЫРАЗИТЬ() тип последнего поля приводится к примитивному типу ЧИСЛО с определенным форматом (длинна 15, точность 2). Как вывести многострочное предупреждение? Переменные «Остаток» и «Зарезервировано» содержат значения, которые необходимо вывести в виде предупреждения. Кроме того, нужно еще вывести свободный остаток, вычисляемый по формуле: СвободныйОстаток = Остаток - Зарезервировано. Все это может быть выполнено следующим образом: 24
  • 26. Примитивные типы, системные функции Процедура глобального контекста Предупреждение() выводит на экран модальное окно предупреждения. Текст предупреждения передается первым параметром, вторым - таймаут, содержащий указание количества секунд, через которое окно самостоятельно закроется (если раньше его не закроет пользователь), третьим - указывается заголовок окна. Многострочность предупреждения в нашем примере осуществляется за счет добавления значения ПС (перевод строки) системного набора значений СИМВОЛЫ в текст предупреждения. Обратите внимание на вычисление свободного остатка в скобках - для обеспечения корректности выполнения арифметических действий и преобразования данных к типу Строка. Кроме того, хотелось бы предупредить об опасности попыток применения процедуры Предупреждение() в ходе проведения документов. Проведение документов выполняется в транзакции, поэтому использование каких либо интерфейсных решений, останавливающих работу системы, является совершенно неприемлемым. В подобных случаях лучше информировать пользователей посредством Сообщить(). Как при выполнении обработки сообщить пользователю текущее время? Метод ТекущаяДата() возвращает системную дату. Тип значения - Дата. В его значение входит и дата и время. Для получения представления только времени можно применяем функцию Формат(). Как вывести число прописью по-русски, но без дробной части? Для этого используется функция ЧислоПрописью(). У нее могут быть указаны в качестве параметров: • преобразуемое число; • форматная строка; • параметры предмета исчисления (вид этой форматной строки определяется значением кода локализации). 25
  • 27. Примитивные типы, системные функции Все возможные варианты локализаций описаны в файле Locllnfo.txt, входящем в комплект поставки программы. Для решения нашей задачи можно использовать следующий текст: В форматной строке указываем код локализации - Русский(Россия). В параметрах предмета исчисления показываем, что дробная часть не должна содержать ни одного разряда. Для ВыводимоеЧисло = 234,4 результат будет: «Двести тридцать четыре». Как вывести число прописью по-русски, с указанием сотых в дробной части? В параметрах предмета исчисления указываем возможные спряжения и склонения слов «целая» и «сотая», а так же количество разрядов дробной части, которые будут выводиться прописью. В форматной строке указываются код языка локализации и необходимость вывода дробной части прописью. Для ВыводимоеЧисло - 123,45 результат будет: «Сто двадцать три целых сорок пять сотых». 26
  • 28. Примитивные типы, системные функции Как вывести прописью число килограммов с указанием дробной части в граммах? В отличие от вышеприведенного примера здесь предметами исчисления являются килограммы и граммы, а количество разрядов дробной части - три. Для ВыводимоеЧисло = 12,345 результат будет: «Двенадцать килограммов триста сорок пять граммов» Как долларовую сумму вывести прописью по- английски? Для ВыводимоеЧисло = 1 232,45 результат будет: «One thousand two hundreds thirty two dollars 45 cents» Какзагрузитьвнешнююкомпоненту? Загрузим компоненту, позволяющую работать со сканером штрих- кодов: 27
  • 29. Примитивные типы, системные функции В случае ошибки загрузки компоненты или создания объекта возникает исключительная ситуация, которую рекомендуется отрабатывать с помощью конструкции Попытка. Как выполнить команду операционной системы? К примеру, требуется удалить все файлы из указанного каталога. Для реализации данной возможности достаточно выполнить следующую строку кода: Для просмотра доступных команд можно в командной строке системы выполнить команду «help». Вызвать командную строку, можно выполнив строку кода: Кроме этого, для запуска внешнего приложения (или открытия файла с использованием ассоциированного с ним приложения) может быть использован метод глобального контекста ЗапуститьПриложение(). В этом случае запуск приложения будет осуществляться непосредственно, минуя командный интерпретатор. Например: 28
  • 30. Примитивные типы, системные функции Как реализовать код процедуры в зависимости от режима выполнения (на клиенте, на сервере, во внешнем соединении) ? Если алгоритм должен выполняться по-разному в зависимости от места выполнения процедуры, то можно воспользоваться инструкциями препроцессора: 29
  • 31. Примитивные типы, системные функции Как при групповой обработке объектов реализовать стратегию «либо все, либо ничего»? Требуется загрузить либо все данные по справочнику «Единицы измерения», либо, в случае возникновения ошибки, нужно чтобы ни один элемент не был записан. Для реализации стратегии «либо все, либо ничего» можно использовать следующий фрагмент кода: Если необходимо но мере накопления каких-либо признаков «искусственно» отменить действия, совершаемые в транзакции, можно использовать метод системы: МО
  • 32. Примитивные типы, системные функции Как посчитать сумму по формуле сложного процента? Возведение в степень реализуется функцией Pow(). Первым параметром передается основание степени, вторым - показатель степени. Замечание: кроме работы со степенями математический аппарат системы позволяет работать с корнями, логарифмами и тригонометрическими функциями. 31
  • 33. Универсальные коллекции Массив В каких ситуациях обычно используются массивы? Массив является универсальной коллекцией, то есть объектом, предназначенным для работы с временными наборами данных в течение сеанса работы пользователя. Необходимость в его использовании возникает, когда требуется работать с временным набором данных. Чаще всего это промежуточные операции обработки информации: подготовка отборов, реализация поиска, подготовка группирования, передача параметров и проч. Массивы могут создаваться оператором Новый или получаться в результате применения методов некоторых объектов. Как создать массив? Создание массивов чаще всего происходит посредством оператора Новый: где «СозданныйМассив» - имя переменной, которая будет содержать созданный объект типа Массив. После создания к массиву можно добавлять элементы (произвольное количество). Если же мы хотим создать массив с заранее определенной размерностью, это можно сделать так: В результате в переменной «СозданныйМассив» будет создан массив с десятью значениями. Для такого массива можно потом сразу обращаться к любому из десяти значений (начиная с нулевого по девятое) для записи или для чтения. А при необходимости к такому массиву можно так же еще добавлять новые элементы. Первый же добавленный элемент получит индекс «10». 32