Создание документа в 1С с возможностью подключения дополнительных обработок по заполнению табличных частей и внешних печатных форм

12.10.13

Разработка - Инструментарий разработчика

Иногда возникает необходимость добавить  документ в базу 1С для расширения функционала программы. Кроме всего прочего, хочется, чтобы к этому документу, как и к типовому, можно было присоединять внешние обработки по заполнению табличных частей и внешние печатные формы. Как это сделать описано ниже. Речь идет не об управляемом приложении. Проверялось на конфигурации 1.3.15.1 Управление производственным предприятием на платформе 8.2.14

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Инструкция
.docx 192,36Kb
36
36 Скачать (1 SM) Купить за 1 850 руб.

К публикации приложена подробная инструкция. Надеюсь, что публикация будет полезна и поможет быстро добавить необходимые процедуры и переменные в новый документ, чтобы к нему, как и к типовому можно было подключить внешние обработки по заполнению табличных частей и внешние печатные формы.

1. Вы добавляете документ в базу. В документе создаете реквизиты и табличную часть. Имя табличной части и ее командной панели – все, чем будет отличаться ваш модуль от показанного ниже в части данного функционала.

2. Добавляете переменные в модуль формы.

Перем мДеревоМакетов;                                                                     // Хранит дерево макетов печатных форм

Перем мПодменюПечати;                                                                   // Хранит элемент управления подменю печати

Перем мПечатьПоУмолчанию;                                                          // Хранит элемент управления кнопку печать по умолчанию

Перем мКнопкиЗаполненияТЧ;                                                        // Хранит дерево кнопок подменю заполнение ТЧ

3. Процедура "ПередОткрытием" должна содержать вызов двух процедур.

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

      // Установка кнопок печати

      УстановитьКнопкиПечати();            

      // Установка кнопок заполнение ТЧ 

       УстановитьКнопкиПодменюЗаполненияТЧ();   

КонецПроцедуры

4. Добовляете процедуры, которые управляют кнопками по заполнению табличных частей.

Процедура УстановитьКнопкиПодменюЗаполненияТЧ()   

        СоответствиеТЧ = Новый Соответствие;

      // КоманднаяПанель1 - командная панель первой табличной части документа

      // МатериальныйОтчет - имя первой табличной части

      // КоманднаяПанель2 - командная панель второй табличной части документа

      // ТабличнаяЧасть2 - имя второй табличной части

 

      СоответствиеТЧ.Вставить(ЭлементыФормы.МатериальныйОтчет,ЭлементыФормы.КоманднаяПанель1);  

      СоответствиеТЧ.Вставить(ЭлементыФормы.ТабличнаяЧасть2,ЭлементыФормы.КоманднаяПанель2);

                  

       мКнопкиЗаполненияТЧ = УниверсальныеМеханизмы.СформироватьПодменюЗаполненияТЧ(Ссылка,

                                                                                 СоответствиеТЧ, Новый Действие("НажатиеНаДополнительнуюКнопкуЗаполненияТЧ"));  

          

КонецПроцедуры

 

Процедура НажатиеНаДополнительнуюКнопкуЗаполненияТЧ(Кнопка)

  

           УниверсальныеМеханизмы.ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ(мКнопкиЗаполненияТЧ.Строки.Найти(Кнопка.Имя,                                                                                                                                                                                                                                                                                                                                                                             "Имя",Истина),ЭтотОбъект);   

КонецПроцедуры // НажатиеНаДополнительнуюКнопкуЗаполненияТЧ()

 

5. Добавляете процедуры управления кнопками печати доп. печатных форм. 

Процедура УстановитьКнопкиПечати()

  

         мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, Неопределено, Новый Действие("ОсновныеДействияФормыПечать"),

                                                                                                                                                                                                                                                                                Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));

 

         УниверсальныеМеханизмы.УстановитьПодменюПечати    (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов);

          УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов,

                                      Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию"));

 

        Если Не мПодменюПечати = Неопределено Тогда

                   УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина);

        КонецЕсли;

  

КонецПроцедуры // УстановитьКнопкиПечати()

 

Процедура ОсновныеДействияФормыПечать(Кнопка)

  

       УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);

  

КонецПроцедуры // ОсновныеДействияФормыПечать()

 

Процедура ОсновныеДействияФормыПечатьПоУмолчанию(Кнопка)

  

       УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);

  

КонецПроцедуры // ОсновныеДействияФормыПечатьПоУмолчанию()

 

Процедура ОсновныеДействияФормыУстановитьПечатьПоУмолчанию(Кнопка)

  

       Если УниверсальныеМеханизмы.НазначитьКнопкуПечатиПоУмолчанию(мДеревоМакетов, Метаданные().Имя) Тогда

                  

                   УстановитьКнопкиПечати();                           

       КонецЕсли;

  

КонецПроцедуры // ОсновныеДействияФормыУстановитьПечатьПоУмолчанию()

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

 

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    172117    964    403    

924

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14682    108    46    

108

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    17349    43    15    

75

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

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

9360 руб.

17.05.2024    27392    96    48    

139

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11965    45    33    

67

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191371    1153    0    

920

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18119    7    32    

42

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1155    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Модератор раздела 10.02.12 16:27 Сейчас в теме
Даю подсказку - лично я тупо создал себе несколько шаблонных инструкций - модуль формы документа, модуль формы документа с ТЧ, модуль формы списка документов, модуль объекта для документа.
в эти шаблоны и закинул весь необходимый код.
Очень просто и очень удобно использовать.
Пользуюсь этими шаблонами уже несколько лет.
2. dimanich70 882 10.02.12 22:37 Сейчас в теме
тоже все хочу привести в систему, но никак руки не доходят. Если поднимете мою тему про базу для хранение обработок и инструкций, то это и есть как раз такая попытка.
doleynikov; +1 Ответить
3. Borisych 500 11.02.12 00:49 Сейчас в теме
Красавчикус! ещё нужно упомянуть - чтобы документ был ну прям как в типовой - его нужно прописать в подписках на событиях, планах обмена, ПВХ - чтобы свойства можно было задавать и других объектах типовой конфигурации
4. dimanich70 882 11.02.12 22:21 Сейчас в теме
Не, ну кто знает все, то может себя комментариями не затруднять.
5. doleynikov 20.03.12 11:05 Сейчас в теме
А может кто-то растолковать нубу, как вся эта шарманка работает? Как такое можно прикрутить к самописной конфигурации?
7. CratosX 114 21.10.13 01:03 Сейчас в теме
8. Светлый ум 454 29.03.15 08:57 Сейчас в теме
(5) Для самописной используйте БСП от 1С
6. dimanich70 882 11.04.12 12:40 Сейчас в теме
К самописной конфигурации??? Нужно понять логику и тогда получится, но данное описание не для этого.
Примерно по шагам.
1. Справочник где хранятся внешние обаработки (печ формы и т.д.) с описанием к каким документам и таб.частям они прикручиваются.
2. При открытии формы, добавить нужные кнопки
3. При нажатии на эти кнопки получать файлы внешних обработок и запускать, передавая в них тек. объект в предопределенные реквизиты.
Оставьте свое сообщение