Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 окт 2021, 20:42

Создание 2-х документов на основании: последующее редактирование, удаление...

Автор Constantus, 17 сен 2016, 16:11

0 Пользователей и 1 гость просматривают эту тему.

Constantus

Приветствую, форумчане!

УТ 10.3, 1с8.2, обычное.

Создал самописный документ "РегулированиеПоступлений" (точнее полная копия документа "Реализация товаров и услуг")
На основании данного документа создаются 2-а новых документа:
1. Реализация Товаров и Услуг
2. Поступление Товаров и Услуг

Иными словами, это формирование пакета документов для передачи товаров Основной организации в её филиалы (передача товаром между собственными организациями). Первый документ формирует задолженность перед Основной Организацией, Второй документ осуществляет Поступление товаров на склад Филиала.

Т.е. одним документом (самописным) я фотографирую двух зайцев.

В перспективе планирую создать кнопку, которая будет формировать эти 2-а документа программно. Это я сделать смогу...

Но вот возникает вопрос: возможна ситуация, что потребуется редактирование основного документа "РегулированиеПоступлений"!!! В этом случае мне потребуется редактирование и этих 2-х сопутствующих документов (сделанных на основании), точнее их табличных частей с последующим проведением.

Аналогично, если данный основной документ подлежит удалению (пометке), т.е. нужно также программно сделать отметку об удалении на эти 2-а документа.

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

alexandr_ll

Можно использовать процедуры "ОбработкаПроведения", "ОбработкаУдаленияПроведения", в них можно описать поведение подчиненных документов (см. например документ "АвансовыйОтчет" типовой конфигурации). Следует иметь ввиду, что при произвольном изменении подчиненных документов могут возникнуть коллизии по недостачам и себестоимости на филиалах.

Constantus

Создал самописный документ (типа копия Реализация).
С помощью кнопки "Сформировать" получилось сформировать "Релизацию" и "Поступление". Ну в общем то, что хотелось. В форме самописного документа имеются 2-а реквизита с ссылками на соответствующий сформированный документ.
Также на "ОбработкаПроведения" и "ОбработкаУдаленияПроведения" повесил соответствующие коды, которые проводят(снимают), помечают(снимают) пометку удаления.
Одним словом ОК... Но... Хотел повесить этот код (формирование 2-х документов) на кнопку "ОК" самописного документа... Тут возникла проблема:

1. При нажатии кнопки "ОК" код формирования документов срабатывает дважды, т.к. процедуру "СформироватьРеализацияПоступление" повесил в "ОбработкаПроведения"

СформироватьРеализацияПоступление();

Доку = Реализация.ПолучитьОбъект();
Доку.Проведен = Истина;
Доку.ПометкаУдаления = Ложь;
Доку.Записать(РежимЗаписиДокумента.Проведение);

Доку = Поступления.ПолучитьОбъект();
Доку.Проведен = Истина;
Доку.ПометкаУдаления = Ложь;
Доку.Записать(РежимЗаписиДокумента.Проведение);


Ну и соответственно срабатывает код как при проведении, так и при записи документов (Доку.Записать). Благо поставил защиту от дублирования при формировании.

Как правильно и где прописать (поставить) код формирования 2-х документов на кнопку "ОК", чтобы срабатывало единожды???

2. В коде формирования документов "СформироватьРеализацияПоступление" имеется код:
       
НДР = Реализация.ПолучитьОбъект();
Форма = НДР.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
НДР.Записать(РежимЗаписиДокумента.Проведение);
Реализация = НДР.Ссылка;
Форма.Закрыть();


В результате при формировании Дока на экран выводятся формы, записываются, закрываются. Это не удобно. Как правильно записать сформированный программно документ без открытия форм???

Если не открывать форму, то выдает ошибку типа не заполнена дата и ряд других реквизитов, хотя программно заполняю вроде все реквизиты соответствующих документов


alexandr_ll

1. Формирование документов можно делать в процедуре "ПриЗаписи"
2. Вполне можно создавать документы и без открытия их формы, просто все обязательные реквизиты должны быть заполнены, в том числе и Дата.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск