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

12.10.13

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

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

Скачать файлы

Наименование Файл Версия Размер
Инструкция
.docx 192,36Kb
36
.docx 192,36Kb 36 Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

                  

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

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

          

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

 

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

  

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

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

 

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

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

  

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

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

 

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

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

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

 

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

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

        КонецЕсли;

  

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

 

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

  

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

  

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

 

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

  

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

  

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

 

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

  

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

                  

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

       КонецЕсли;

  

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

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

 

См. также

SALE! 20%

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121630    670    389    

711

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7266    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3512    11    1    

33

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177729    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99342    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

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

3000 руб.

27.08.2019    18104    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28099    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23598    15    15    

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