Создание нескольких Поступлений с Реализации
Здравствуйте! УТП 8.3(Обычные формы)
Есть документ "Реализация товаров и услуг", в нём ТЧ.Расшифровка(куда вписаны Исполнители(Контрагенты) и задачи, которые они сделали).
Далее на основании Реализации создаю "Поступление товаров и услуг", где есть такая же ТЧ.Расшифровка. Но одно не могу понять: как сделать, чтобы для Каждого исполнителя из ТЧ.Расшифровка(из Реализации) создавалась отдельное Поступление и туда попадали только его Задачи. Прошу помочь
Есть документ "Реализация товаров и услуг", в нём ТЧ.Расшифровка(куда вписаны Исполнители(Контрагенты) и задачи, которые они сделали).
Далее на основании Реализации создаю "Поступление товаров и услуг", где есть такая же ТЧ.Расшифровка. Но одно не могу понять: как сделать, чтобы для Каждого исполнителя из ТЧ.Расшифровка(из Реализации) создавалась отдельное Поступление и туда попадали только его Задачи. Прошу помочь
Прикрепленные файлы:
По теме из базы знаний
- Обработка для БУХ УСН 7.7 + аналогичная обработка для БУх 7.7 "Создание документа Поступления на основании нескольких Реализаций"
- Ввод поступления на основании реализации. Бухгалтерия предприятия 3.0.
- Формирование цепочки документов (Реализация - Поступление - Реализация ..... - Поступление)
- Автоматическое создание корректировок реализации в УПП 1.3 из файла JSON (выгружаем возвраты поставщику и корректировочные счета-фактуры из 1С 7.7)
- Раздельный учет НДС. Реализация на экспорт: ставка НДС 0%. Алгоритм распределения. БП 3.0 КОРП
Найденные решения
(1)
1) Создать кнопку ( создать Поступление товаров и услуг)
2) далее прописываем:
3) В модуле документа Постпления ищем процедуру "ОбработкаЗаполнения"
в ней находим где у нас заполняется ТЧ Расшифровка и дальше делаем что-то типа:
Не претендую на истину, но вполне рабочий вариант
1) Создать кнопку ( создать Поступление товаров и услуг)
2) далее прописываем:
ТЧИсполнитель= Док.Расшифровка.Свернуть("Исполнитель");
Для Каждого стр из ТЧИсполнительЦикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
Док.ПолучитьФорму().Открыть();
КонецЦикла;
3) В модуле документа Постпления ищем процедуру "ОбработкаЗаполнения"
в ней находим где у нас заполняется ТЧ Расшифровка и дальше делаем что-то типа:
Если ДополнительныеСвойства.Свойство("Исполнитель") И ЗначениеЗаполнено(ДополнительныеСвойства.Исполнитель) Тогда
//Тут пишем заполнения по сотруднику, можно в лоб перебрать все строки из документа основания и проверить совпадает ли у нас исполнитель с тем что находится в ДополнительныеСвойства.Исполнитель
Иначе
//а тут оставляем типовое заполнение ТЧ Расшифровки
КонецЕсли;
Не претендую на истину, но вполне рабочий вариант
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(10)я, наверное, не правильно объяснил проблему. Как просто создать документ на основании другого я понимаю. Но у меня немного другая задача:
Есть Документ реализация товаров, в ней есть ТЧ.Расшифровка(Задача, Исполнитель...)
Нужно при создании документа Поступление товаров создать не один документ, а столько - сколько различных Исполнителей в ТЧ.Расшифровка(Чтобы для каждого исполнителя свой задачи записать)
Есть Документ реализация товаров, в ней есть ТЧ.Расшифровка(Задача, Исполнитель...)
Нужно при создании документа Поступление товаров создать не один документ, а столько - сколько различных Исполнителей в ТЧ.Расшифровка(Чтобы для каждого исполнителя свой задачи записать)
(15) вы бы всё-таки попробовали конструктором воспользоваться... я ж не знаю есть ли в вашей конфе общий модуль ЗаполнениеДокументов (например)
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ФИЛ_УчетМЦ04") Тогда
// Заполнение шапки
Организация = ДанныеЗаполнения.Организация;
Склад = ДанныеЗаполнения.Склад;
Для Каждого ТекСтрокаМЦ04 Из ДанныеЗаполнения.МЦ04 Цикл //МЦ04 это таб часть документа-основания
НоваяСтрока = Материалы.Добавить();
НоваяСтрока.Номенклатура = ТекСтрокаМЦ04.Номенклатура; //здесь соответств Реквизит ТЧ МЦ04 - документа-основания
КонецЦикла;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Показать
(18)К примеру
Есть Реализация в которой:
Услуги
Услуга | 30 часов
Расшифровка
Исполнитель1 | Задача1 | 10 часов
Исполнитель1 | Задача2 | 5 часов
Исполнитель2 | Задача3 | 15 часов
Создаются 2 Поступления:
- в одном Контрагент = Исполнитель1
Услуги = Услуга | 15 часов
Расшифровка =
Задача1 | 10 часов
Задача2 | 5 часов
-второе поступление Контрагент = Исполнитель2
Услуги = Услуга | 15 часов
Расшифровка =
Задача3 | 15 часов
Есть Реализация в которой:
Услуги
Услуга | 30 часов
Расшифровка
Исполнитель1 | Задача1 | 10 часов
Исполнитель1 | Задача2 | 5 часов
Исполнитель2 | Задача3 | 15 часов
Создаются 2 Поступления:
- в одном Контрагент = Исполнитель1
Услуги = Услуга | 15 часов
Расшифровка =
Задача1 | 10 часов
Задача2 | 5 часов
-второе поступление Контрагент = Исполнитель2
Услуги = Услуга | 15 часов
Расшифровка =
Задача3 | 15 часов
(1)
В первом случае заполнение ТЧ.Расшифровка должно делаться в документе Поступление после выбора Исполнителя - надо в цикле заполнения ТЧ.Расшифровка вставить проверку на равенство Исполнителя в строках ТЧ и выбранного в Поступлении, несовпадающих - пропускать.
Вот втором варианте надо делать отдельную обработку или дописывать функционал в документ Реализация - например, создавать кнопку с соответствующим кодом.
Далее на основании Реализации создаю "Поступление товаров и услуг"
Вручную создаете? Или хотите, чтобы эти два (или больше) документа создавались автоматически?
В первом случае заполнение ТЧ.Расшифровка должно делаться в документе Поступление после выбора Исполнителя - надо в цикле заполнения ТЧ.Расшифровка вставить проверку на равенство Исполнителя в строках ТЧ и выбранного в Поступлении, несовпадающих - пропускать.
Вот втором варианте надо делать отдельную обработку или дописывать функционал в документ Реализация - например, создавать кнопку с соответствующим кодом.
Вам бы для начала хоть литературу почитать по программированию. Здесь-то за вас многое могут сделать, но вечно на чужом горбу не получится кататься) Задачка-то элементарная и буквально на 5 минут, если иметь хотя бы начальный уровень программирования
(1)
1) Создать кнопку ( создать Поступление товаров и услуг)
2) далее прописываем:
3) В модуле документа Постпления ищем процедуру "ОбработкаЗаполнения"
в ней находим где у нас заполняется ТЧ Расшифровка и дальше делаем что-то типа:
Не претендую на истину, но вполне рабочий вариант
1) Создать кнопку ( создать Поступление товаров и услуг)
2) далее прописываем:
ТЧИсполнитель= Док.Расшифровка.Свернуть("Исполнитель");
Для Каждого стр из ТЧИсполнительЦикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
Док.ПолучитьФорму().Открыть();
КонецЦикла;
3) В модуле документа Постпления ищем процедуру "ОбработкаЗаполнения"
в ней находим где у нас заполняется ТЧ Расшифровка и дальше делаем что-то типа:
Если ДополнительныеСвойства.Свойство("Исполнитель") И ЗначениеЗаполнено(ДополнительныеСвойства.Исполнитель) Тогда
//Тут пишем заполнения по сотруднику, можно в лоб перебрать все строки из документа основания и проверить совпадает ли у нас исполнитель с тем что находится в ДополнительныеСвойства.Исполнитель
Иначе
//а тут оставляем типовое заполнение ТЧ Расшифровки
КонецЕсли;
Не претендую на истину, но вполне рабочий вариант
(25)
Сейчас испытаю. А возможно ли без создания кнопки обойти? Можно этот фрагмент кода вставить в стандартное формирование документа на основании?
ТЧИсполнитель= Док.Расшифровка.Свернуть("Исполнитель");
Для Каждого стр из ТЧИсполнительЦикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
Док.ПолучитьФорму().Открыть();
КонецЦикла;
Для Каждого стр из ТЧИсполнительЦикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
Док.ПолучитьФорму().Открыть();
КонецЦикла;
Сейчас испытаю. А возможно ли без создания кнопки обойти? Можно этот фрагмент кода вставить в стандартное формирование документа на основании?
(27)так вот процедура выглядит
Процедура ДействияФормыСоздатьПоступлениеТоваровИУслуг(Кнопка)
ТЧИсполнитель= ЭтотОбъект.Расшифровка.Свернуть("Исполнитель");
Для Каждого стр из ТЧИсполнитель Цикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
ЭтотОбъект.ПолучитьФорму().Открыть();
КонецЦикла;
КонецПроцедуры
ТЧИсполнитель= ЭтотОбъект.Расшифровка.Свернуть("Исполнитель");
Для Каждого стр из ТЧИсполнитель Цикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
ЭтотОбъект.ПолучитьФорму().Открыть();
КонецЦикла;
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот