Получить данные из макета 1с
В этом уроке мы научимся создавать табличные макеты в 1С, которые в дальнейшем могут быть использованы для программного формирования печатных форм.
К примеру, как я сформировал макеты для тестовой базы.
Я зашёл в форму обработки и перешёл на закладку "Макеты":
Далее я нажал на "Плюсик" и выбрал тип "Табличный документ":
Открылся редактор табличного документа:
Во многих моментах работа в редакторе похожа на работу в программе Excel, но есть свои особенности, на которых я бы хотел остановиться.
Как назначить имя области
Что я понимаю под областью? Это и несколько строк и несколько ячеек, в общем любая часть табличного документа, которая может быть выделена нами, используя левую кнопку мыши.
Вот выделенная область из двух строк:
А вот выделенная область из 2 столбцов:
А сейчас мы выделим область на пересечении первых двух строк и первых двух столбцов:
Так вот. Если мы сумели выделить нужную нам область, то, нажав на ней правой кнопкой и выбрав пункт "Свойства", мы сможем присвоить ей имя, по-которому мы будем к ней обращаться из нашего кода, формируя печатную форму:
Это базовый навык, которым мы должны овладеть, чтобы суметь делать табличные макеты.
Как посмотреть уже назначенные имена
А давайте посмотрим какие имена областям уже назначены в макете?
Для этого из меню конфигуратора выбираем:
Вот она наша только что назначенная область "Шапка":
А если сейчас выделим её в диалоге и нажмём "Выбрать", то в редакторе будет выбрана соотв. область ячеек:
Как задать параметр области
Часто при формировании печатной области требуется не просто вывести область из макета. Нужно ещё и заполнить определенные ячейки определенными параметрами.
Эти параметры мы задаём у области и заданные значения автоматически попадают в нужные ячейки.
Для этого в свойствах нужной нам ячейки (куда будет выводиться значение параметра).
Указываем в поле "Заполнение" значение "Параметр", а в поле "Параметр" пишем имя, по которому мы будем обращаться к этому параметру из кода:
Если же указать в заполнении не "Параметр", а "Шаблон", то можно будет в самой ячейке указать какой-то текст (шаблон) с использованием имени параметра в квадратных скобках:
В этом случае имя параметра (и его позиция в шаблоне) указывается в квадратных скобках.
Как задать параметр расшифровки?
Имя параметра расшифровки задаётся всё в тех же свойствах ячейки:
Уже потом из кода мы присвоим этому параметру (по имени "РасшифровкаНоменклатуры") нужное значение (ссылку на элемент номенклатуры).
И когда пользователь сделает двойной щелчок на этой ячейки - ему откроется значение, присвоенное параметру расшифровки (в данном случае откроется форма элемента номенклатуры).
Дальнейшее напутствие
Мы рассмотрели необходимые основы. А теперь внимательно исследуйте рабочий пример.
Скачайте и разверните эту базу. Найдите в ней обработку "ОбработкаДляИспытаний".
В её макетах есть табличные варианты. Исследуйте их как можно тщательнее, опираясь на приёмы, которые мы рассмотрели чуть выше.
Уже затем (в этой же обработке) переходите к примерам использования этих макетов. Только так вы научитесь создавать свои печатные формы на основе табличных макетов.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Основы формирования табличного документа на основе макета
Обычно табличный документ формируется на основе макета как из строительных блоков. Макет представляет собой шаблон для формирования печатной формы. Построение макета производится в конфигураторе в специальном табличном редакторе. Разработчик может создавать области, изменять высоту строк и ширину колонок, задавать форматирование ячеек и всего табличного документа, включать в макет рисунки, диаграммы и сводные таблицы.
Области макета предназначены для однократного или многократного вывода, например, ниже представлен макет для печати расходной накладной:
Некоторые ячейки содержат только текст, который должен быть выведен. Другие ячейки содержат имена параметров (в угловых скобках). Значения этих параметров должны указываться в программном модуле. В отличие от версии 7.7, в ячейку нельзя вписать выражение. В версии 8.0 весь программный код сосредоточен в программных модулях и при выводе секций нет связи с текущим контекстом программного модуля. Назначение параметров табличного документа должно производиться явно из программного модуля через коллекцию "Параметры" объекта "ТабличныйДокумент".
Область может состоять из нескольких расположенных подряд строк или колонок, либо быть прямоугольной областью таблицы. К области можно обратиться по имени или по координатам. Можно также обращаться к пересечению областей, используя вертикальную черту (как в версии 7.7).
Общая схема
Общая схема формирования печатной формы на основе макета:
- Создание макета в табличном редакторе (определение областей, имен параметров, форматирования).
- Создание нового табличного документа (этот пункт не требуется, если отчет выводится в элемент управления ПолеТабличногоДокумента).
- Получение макета в переменную (метод ПолучитьМакет).
- Получение областей макета (метод ПолучитьОбласть).
- Заполнение параметров области (свойство Параметры).
- Вывод области в табличный документ (методы Вывести и Присоединить).
- Установка свойств отображения табличного документа (сетка, заголовки, только просмотр и т.д.).
- Отображение табличного документа на экране (а может быть отправка на принтер или сохранение).
Пример вывода табличного документа
Ниже приведен пример формирования печатной формы расходной накладной из модуля документа:
Процедура Печать(ТабДок) Экспорт
//создание нового табличного документа
ТабДок = Новый ТабличныйДокумент ;//получение макета для печати расходной накладной
Макет = Документы.РасходнаяНакладная. ПолучитьМакет ("Основной");//получим область "Заголовок" как новый табличный документ (!)
Область = Макет. ПолучитьОбласть ("Заголовок");//укажем параметры области
Область. Параметры .НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;//выведем заполненную область "Заголовок" в табличный документ
ТабДок. Вывести (Область);//выведем область "Шапка" в табличный документ
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));//получение области "Строка"
//обратите внимание, что это можно сделать до цикла по строкам
Область = Макет.ПолучитьОбласть("Строка");//вывод строк документа в печатную форму
Для Каждого СтрСостава Из Состав Цикл
//заполнение параметров области из строки табличной части
Область.Параметры. Заполнить (СтрСостава);
//вывод сформированной области в табличный документ
ТабДок.Вывести(Область);
КонецЦикла;
//вывод области "Подвал"
Область = Макет.ПолучитьОбласть("Подвал");
Область.Параметры.ИтогоКоличество = Состав.Итог("Количество");
Область.Параметры.ИтогоСумма = Состав.Итог("Сумма");
ТабДок.Вывести(Область);
//установим параметры отображения табличного документа
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ОтображатьСетку = Ложь;
//покажем табличный документ на экране
ТабДок. Показать ();
Использование макетов оформления
Макеты оформления компоновки данных предназначены для оформления отчетов. При помощи макетов оформления можно указывать различным областям отчета определенные цвета фона, текста, шрифты и т.д.
Типы областей макета оформления
Выводимый отчет можно разделить на области, указанные на рис. 1
На указанном рисунке:
- заголовок - область отчета, содержащая заголовок отчета,
- информация - область отчета, содержащая текст установленных в отчете отборов, а также параметры данных,
- э лементы отчета представляют собой группировки, таблицы, диаграммы или вложенные отчеты.
Группировку отчета можно представить в виде областей, указанных на рис. 2
На указанном рисунке:
- заголовок - область группировки, содержащая заголовок группировки верхнего уровня,
- информация - область группировки, содержащая текст установленных для группировки верхнего уровня отборов,
- заголовок таблицы - область группировки, содержащая имена выводимых полей,
- заголовки группировки - области, содержащие значения выводимых полей группировки. Данные области выводятся в начале группировки,
- подвалы группировки - области, содержащие значения выводимых полей. Данные области выводятся в конце группировки,
- детальные записи - область, содержащая значения выводимых полей детальных записей,
- общие итоги по вертикали - область, содержащая итоги по группировке.
Следует заметить, что в качестве заголовков или подвалов группировки могут использоваться заголовки и подвалы иерархической группировки. Также перед заголовками группировок могут находиться области заголовка и информации , отображающие заголовок вложенной группировки и отбор соответственно.
Группировку отчета, отображаемую в виде списка, можно представить в виде областей, указанных на рис. 3
На указанном рисунке:
заголовок - область группировки, содержащая заголовок, информация - область группировки, содержащая текст установленных для группировки отборов, заголовки группировки списка - области, содержащие значения выводимых полей группировки. Данные области выводятся в начале группировки, подвалы группировки списка - области, содержащие значения выводимых полей. Данные области выводятся в конце группировки, детальные записи списка - область, содержащая значения выводимых полей детальных записей, общие итоги по вертикали списка - область, содержащая итоги по группировке.Следует заметить, что в качестве заголовков или подвалов группировки могут использоваться заголовки и подвалы иерархической группировки.
Таблицу можно представить в виде областей, указанных на рис. 4
На указанном рисунке:
информация - область таблицы, содержащая текст установленных для таблицы отборов, заголовок таблицы - область таблицы, содержащая имена выводимых в строках таблицы полей, заголовки и подвалы группировки колонки - области таблицы, содержащие выводимые в колонках таблицы поля. Стоит отметить, что в качестве заголовков и подвалов группировок колонок могут использоваться заголовки и подвалы иерархических группировок колонок, заголовки и подвалы группировки - области таблицы, содержащие выводимые в строках таблицы поля. В качестве заголовков и подвалов группировок также могут использоваться заголовки и подвалы иерархических группировок строк. Также перед заголовками группировок строк могут находиться области заголовка и информации , отображающие заголовок вложенной группировки строк и отбор соответственно, ресурсы заголовка группировки , ресурсы подвала группировки и ресурсы детальных записей - области таблицы, содержащие выводимые поля ресурсов. Для иерархических группировок используются, соответственно ресурсы заголовка иерархической группировки и ресурсы подвала иерархической группировки, общие итоги по вертикали - область, содержащая итоги по колонкам таблицы.Таким образом, в макете оформления существуют следующие типы областей :
- ЗаголовокГруппировки (GroupHeader) - область заголовка группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалГруппировки (GroupFooter) - область подвала группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокИерархическойГруппировки (HierarchicalGroupHeader) - область заголовка иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалИерархическойГруппировки (HierarchicalGroupFooter) - область подвала иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокГруппировкиСписка (ListGroupHeader) - область заголовка группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалГруппировкиСписка (ListGroupFooter) - область подвала группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокИерархическойГруппировкиСписка (ListHierarchicalGroupHeader) - область заголовка иерархической группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалИерархическойГруппировкиСписка (ListHierarchicalGroupFooter) - область подвала иерархической группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокГруппировкиКолонки (ColumnGroupHeader) - область заголовка колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалГруппировкиКолонки (ColumnGroupFooter) - область подвала колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокИерархическойГруппировкиКолонки (ColumnHierarchicalGroupHeader) - область заголовка иерархической колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалИерархическойГруппировкиКолонки (ColumnHierarchicalGroupFooter) - область подвала иерархической колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ДетальныеЗаписи (Detail) - область детальных записей. Для данной области значение уровня должно быть всегда равным 0;
- ДетальныеЗаписиСписка (ListDetail) - область детальных записей списка. Для данной области значение уровня должно быть всегда равным 0.
- РесурсыЗаголовкаГруппировки (ResourcesGroupHeader) - область ресурсов заголовка группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыПодвалаГруппировки (ResourcesGroupFooter) - область ресурсов подвала группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыЗаголовкаИерархическойГруппировки (ResourcesHierarchicalGroupHeader) - область ресурсов заголовка иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыПодвалаИерархическойГруппировки (ResourcesHierarchicalGroupFooter) - область ресурсов подвала иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыДетальныхЗаписей (ResourcesDetail) - область ресурсов детальных записей. Для данной области значение уровня должно быть всегда равным 0;
- ИтогПоРесурсамЗаголовкаГруппировки (ResourcesTotalGroupHeader) - область итогов по ресурсам заголовка группировки;
- ИтогПоРесурсамПодвалаГруппировки (ResourcesTotalGroupFooter) - область итогов по ресурсам подвала группировки;
- ИтогПоРесурсамЗаголовкаИерархическойГруппировки (ResourcesTotalHierarchicalGroupHeader) - область итогов по ресурсам заголовка иерархической группировки;
- ИтогПоРесурсамПодвалаИерархическойГруппировки (ResourcesTotalHierarchicalGroupFooter) - область итогов по ресурсам заголовка колонки таблицы;
- ИтогПоРесурсамДетальныхЗаписей (ResourcesTotalDetail) - область итога по ресурсам детальных записей. Для данной области значение уровня должно быть всегда равным 0;
- ОбщиеИтогиПоВертикали (VerticalOverall) - область общего итога по вертикали . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ОбщиеИтогиПоВертикалиСписка (ListVerticalOverall) - область общего итога по вертикали списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокТаблицы (TableHeader) - область заголовка таблицы или группировки. Для данной области значение уровня должно быть всегда равным 0;
- ПоУмолчанию (Default) - область по умолчании. Для данной области значение уровня должно быть всегда равным 0;
- Заголовок (Title) - область заголовка отчета . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- Информация (Information) - область информации . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию .
Существуют следующие особенности вывода заголовков и подвалов группировок :
- Если не задана область подвала неиерархической группировки, то в качестве области подвала выводится область заголовка группировки ;
- Если для иерархической группировки не задана область заголовка, то в качестве области заголовка выводится область заголовка неиерархической группировки ;
- Если не задана область подвала иерархической группировки, то в качестве области подвала выводится область заголовка иерархической группировки. Если же она не задана, то выводится область подвала неиерархической группировки . Если и эта область не задана, то выводится область заголовка неиерархической группировки.
Использование макетов оформления в отчетах
Система компоновки данных позволяет использовать различные макеты оформления в отчете. Причем существует возможность использования нескольких макетов оформления для различных элементов отчета. Для управления макетами оформления используются настройки компоновки данных. При использовании конструктора схемы компоновки данных необходимо перейти на закладку " Настройки " , а затем выбрать закладку " Другие настройки " . На данной закладке находится параметр Макет оформления , позволяющий указывать используемый макет оформления в отчете.
Существуют следующие предопределенные макеты оформления :
- Без оформления ;
- Основной - макет оформления по умолчанию ;
- Яркий ;
- Море ;
- Арктика ;
- Зеленый ;
- Античный.
Создание собственного макета оформления
Собственный макет оформления можно создать, используя конструктор макетов. Для этого необходимо добавить новый макет в папку Общие макеты , находящейся в папке Общие дерева объектов конфигурации. В открывшемся конструкторе макетов необходимо установить тип макета Макет оформления компоновки данных .
Открывшийся редактор макетов оформления позволяет редактировать цвета фона, текста и границы, шрифты, отступы и т.д. областей макета оформления. При этом имена областей, содержащих оформления областей, выделяются жирным шрифтом. Стоит отметить, что существует возможность использования предопределенного макета оформления - для этого необходимо использовать команду Стандартный макет. . Также существует возможность загрузки и сохранения макетов оформления в XML - формате.
Использование макетов оформления из встроенного языка
Для обращения к макетам оформления из встроенного языка предназначено свойство глобального контекста БиблиотекаМакетовОформленияКомпоновкиДанных . Данное свойство является коллекцией макетов оформления и содержит предопределенные макеты оформления, а также макеты оформления, определенные в общих макетах дерева конфигурации.
Данная коллекция имеет следующие методы :
- Индекс( <Макет> ) - получает индекс элемента в библиотеке макетов оформления компоновки данных ;
- Количество() - возвращает количество элементов в библиотеке макетов оформления компоновки данных ;
- Найти( <Имя> ) - осуществляет поиск элемента библиотеки макетов оформления компоновки данных по имени ;
- Получить( <Индекс> ) - получает элемент библиотеки макетов оформления компоновки данных по индексу.
Элементами библиотеки макетов оформления компоновки данных являются объекты типа ЭлементБиблиотекиМакетовОформленияКомпоновкиДанных . Данный объект имеет следующие свойства :
- Имя - имя макета оформления ;
- Представление - представление макета оформления.
Также данный объект имеет метод ПолучитьМакет() , который возвращает объект типа МакетОформленияКомпоновкиДанных .
Для редактирования макетов оформления предназначен объект встроенного языка КонструкторМакетаОформленияКомпоновкиДанных . Данный объект можно создать при помощи конструктора, который имеет необязательный параметр - макет оформления. Если макет оформления не указан, то создается новый макет, иначе открывается для редактирования указанный макет оформления. Конструктор макетов оформления имеет следующие методы:
- ПолучитьМакет() - данный метод предназначен для получения редактируемого макета оформления и возвращает значение типа МакетОформленияКомпоновкиДанных ;
- Редактировать( <Форма> ) - данный метод открывает окно конструктора макета оформления. Параметр <Форма> является необязательным и может содержать значение типа Форма - форму-владельца окна конструктора макетов оформления. При завершении редактирования и нажатии кнопки ОК, конструктор макета оформления вызывает у формы-владельца обработчик события "Обработка выбора". В обработчике данного события можно получить редактируемый макет оформления ;
- УстановитьМакет( <Макет оформления> ) - данный метод предназначен для установки макета оформления для редактирования и имеет один параметр - <Макет оформления> типа МакетОформленияКомпоновкиДанных .
Поясним использование конструктора макета оформления на следующем примере. Пусть необходимо добавить возможность создания собственного макета оформления в отчете о продажах. Для этого необходимо создать собственную форму отчета, добавить в командную панель данной формы кнопку создания макета оформления, а также переопределить действие по кнопке Сформировать .
В обработчике нажатия на кнопку " Создать макет оформления " происходит создание конструктора макета оформления :
Пример формы конструктора показан на указанном ниже рисунке.
В обработчике события ОбработкаВыбора формы происходить запоминание созданного в конструкторе макета оформления.
В обработчике нажатия на кнопку " Сформировать " происходит формирование отчета :
В типовых конфигурациях на управляемых формах «1С Бухгалтерия предприятия 8», «1С Зарплата и управление персоналом 8», «1С Управление Торговлей 8» и т.д., которые реализованы с использованием БСП (библиотека стандартных подсистем) – есть такая замечательная вещь, как регистр сведений «Пользовательские макеты печати». Помимо своего прямого предназначения - дать пользователю возможность самостоятельно редактировать печатные формы (конечно в разумных пределах), его можно использовать и по другому назначению. А именно - хранить в нём некоторую информацию. Бывают ситуации, когда поставленная задача казалось бы не даёт возможности её выполнить, не внеся изменений в типовую конфигурацию. А менять типовую без крайней необходимости – ой, как не хочется. На мой взгляд - с помощью регистра сведений "Пользовательские макеты" - можно решать некоторые задачи. Регистр сведений "ПользовательскиеМакетыПечати" - имеет два измерения: "Объект" и "ИмяМакета", которые имеют тип "Строка" и один ресурс "Макет" с типом "ХранилищеЗначений", где можно хранить что угодно. Почему бы этим не воспользоваться. Ниже примеры из моей практики, где применял.
Пример для «1С Зарплата и управление персоналом 8»:
Необходимо из внешней торговой системы загружать данные о продажах и на основании этих данных рассчитывать премии продавцам. Продавцы имеют процент в зависимости от должности («стажер», «консультант» и т.д) и от места расположения магазина. Никакой линейной зависимости нет: одна и та же должность в разных магазинах имеет разный процент. В прежней редакции Зарплаты 2.5 был заведен «регистр сведений» в разрезе должность/подразделение со ставкой процента. При переходе на 3.1 – было решено использовать макет. Это позволило оставить конфигурацию полностью типовой. Использовать дополнительные реквизиты не получалось, т.к. тогда пришлось бы прописывать для каждого магазина должности и ставки процентов. Оставался бы открытым вопрос с хранением истории изменения ставок, да и забивать форму кучей дополнительных реквизитов тоже не хотелось.
Пример использования при печати:
Необходимо разработать внешнюю печатную форму (неважно что это будет, например трудовой договор по форме принятой в организации). При печати должно «всплывать» окно, в котором дополнительно указываются некоторые сведения, которые также выводятся в печатную форму. При этом должна сохранятся возможность повторной печати с этими же самыми сведениями: у одного сотрудника это одни условия, у другого – другие. В прежней версии использовался непериодический регистр сведений. Я сделал с использованием макета. При первичной печати данные в макет записываются, при повторной – считываются.
Конечно использование макетов - регистр сведений никогда не заменит, но в каких-то случаях очень даже полезен.
Ниже пример реализации по примеру с записью ставок процентов продаж:
Создаем внешнюю обработку, форму с табличной частью, которую должен заполнить пользователь и макет, который потом будет считывать. После заполнения – записываем данные. Простая табличная часть в три колонки "Подразделение", "Должность", "Процент" и "Дата сведений" на форме обработки.
С записью всё просто:
«ИмяВладельца» и «ИмяМакета» - большой роли не играют. Главное чтобы потом при считывании макета они были такими же.
Считываем макет и выводим на печать:
Для вывода на печать, чтобы использовать общую форму "Печать документов", нужно будет ещё в реквизиты формы добавить Таблицу значений с колонками произвольного типа "ИмяМакета", "ТабличныйДокумент", "ИмяВРЕГ", "СинонимМакета", "Экземпляров", "ПолныйПутьКМакету", "ИмяФайлаПечатнойФормы", "ОфисныеДокументы".
Есть ещё один момент который я считаю плюсом: если пользователь зайдёт в регистр сведений "Пользовательские макеты печати", то данный макет он не увидит. С одной стороны сохраняется конфиденциальность, а с другой не будет лишних вопросов.
Пример с обработкой прилагаю: работает и "1С Зарплатой 8" и с "1СБухгалтерией 8". В "1С Управлении торговлей 8" не сработает по причине отсутствия справочников "Должности" и "Подразделения", но сам принцип рабочий.
Обработка тестировалась на релизах "1С Зарплата 8" 3.1.7.144, 3.1.8.216; "1С Бухгалтерия 8" 3.0.67.54.
Читайте также: