Создание нескольких документов на основании одного с открытием созданных документов

19.03.21

Задачи пользователя - Адаптация типовых решений

Возникла необходимость создания нескольких документов на основании одного с открытием новых документов. При этом хотелось использовать типовой механизм создания на основании.

Как известно, открытие форм происходит на клиенте, а их заполнение на сервере. Т.е. сначала получаем форму на клиенте, потом заполняем ее на сервере, затем открываем на клиенте. Естественно, при таком подходе необходимо учитывать объем создаваемых документов. Слишком большое количество во-первых не влезет в окно 1с, во-вторых повесит систему количеством клиент-серверных вызовов. Для больших объемов данных рекомендуется создаваемые документы записывать без открытия и все операции выполнять на сервере в рамках единого вызова. В моем же примере создаваемых документа в среднем 3 штуки, поэтому пользуемся инструментами типового механизма.

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

Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
     ПланированиеДеятельности.ДобавитьКомандуСоздатьНаОснованииЗаказНаВнутреннееПотребление (КомандыСозданияНаОсновании);
	
КонецПроцедуры

В серверном модуле ПланированиеДеятельности зададим свой обработчик команды, который будет располагаться на клиенте (ПланированиеДеятельностиКлиент ):

Функция ДобавитьКомандуСоздатьНаОснованииЗаказНаВнутреннееПотребление (КомандыСозданияНаОсновании) Экспорт

     Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказНаВнутреннееПотребление) Тогда

          КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();

          КомандаСоздатьНаОсновании.Обработчик = "ПланированиеДеятельностиКлиент.СозданиеЗаказаНаВнутреннееПотребление";

          КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЗаказНаВнутреннееПотребление);

          КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";

          КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьЗаказыНаВнутреннееПотребление";
     
          Возврат КомандаСоздатьНаОсновании;

     КонецЕсли;

     Возврат Неопределено;

КонецФункции

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

Процедура СозданиеЗаказаНаВнутреннееПотребление(ДокументОснование, СтандартнаяОбработка) Экспорт

     МассивПодразделений = ПланированиеДеятельностиВызовСервера.ПолучитьПодразделения (ДокументОснование); //Обращение к серверному модулю

          Для каждого Подразделение Из МассивПодразделений Цикл

               ПараметрыЗаполнения = Новый Структура("ДокументОснование, Подразделение", ДокументОснование, Подразделение);

               Форма = ПолучитьФорму("Документ.ЗаказНаВнутреннееПотребление. ФормаОбъекта", Новый Структура("ЗначенияЗаполнения", ПараметрыЗаполнения),,Истина); //здесь проваливаемся в ОбработкаЗаполнения в модуле объекта

               Форма.Открыть(); //возвращаемся на клиента и открываем форму

          КонецЦикла;

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

Далее в модуле объекта пишем свои обработчики по заполнению документов. После их выполнения управление вернется на клиента, где будет открыта заполненная форма.

Так, используя минимум доработок, можно использовать типовой механизм "создания на основании" для создания нескольких документов.

Вступайте в нашу телеграмм-группу Инфостарт

Создать на основании создание нескольких документов из одного

См. также

Адаптация типовых решений 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    8314    25    15    

34

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3500 руб.

07.02.2023    9073    98    17    

54

Адаптация типовых решений Бухгалтер 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Разработка для упрощения процедуры передачи данных о выплатах для конфигурации 1С:ЗиКГУ. Данное расширение предоставляет возможность экспортировать данные «Распоряжения» непосредственно из документа "Ведомость в банк" в формате XML.

3840 руб.

13.11.2024    1611    3    4    

4

Адаптация типовых решений Программист 1С v8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Маленькая заметка (в трех разных масштабах) для тех, кто часто видит окно при входе в ЗУП «Новые сообщения для расшифровки по 1С-Отчетность», которое появляется через 60 секунд после запуска программы, как раз когда вы уже добрались до интересующей вас формы и начали в ней что-то активно делать:

1 стартмани

17.06.2024    6072    75    Znata_PI    7    

22

Адаптация типовых решений Программист Пользователь 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    6344    dimanich70    15    

22

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    13814    dimanich70    11    

26

Адаптация типовых решений Программист 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    5378    44    TempTablesManager    16    

58
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. МимохожийОднако 142 06.09.21 10:13 Сейчас в теме
Далее в модуле объекта пишем свои обработчики по заполнению документов

Пример можно?
3. rule_2 52 28.09.21 09:40 Сейчас в теме
(1)

// В этом коде в качестве данных заполнения может быть передана только структура, иначе
// обработка завершается. Вообще здесь может быть любой произвольный алгоритм заполнения
// Данный код лишь в качестве примера, более сложные алгоритмы смотреть нужно в типовых конфигурациях
//
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	Если ТипЗнч(ДанныеЗаполнения)<> Тип("Структура") Тогда
		Возврат;
	КонецЕсли;
	
	// Заполняем реквизиты документа из данных заполнения
	//
	Организация = ДанныеЗаполнения.Организация;
	Контрагент = ДанныеЗаполнения.Контрагент;
	Партнер = ДанныеЗаполнения.Клиент;
	Договор = ДанныеЗаполнения.ДоговорКонтрагента;

КонецПроцедуры
Показать
2. rule_2 52 28.09.21 09:35 Сейчас в теме
В управляемом приложении лучше использовать вместо "ПолучитьФорму" - "ОткрытьФорму", тем более, в коде ведь с формой работы никакой нет, кроме как ее открытия

https://infostart.ru/1c/articles/236382/
Оставьте свое сообщение