Создание нескольких Поступлений с Реализации

1. Tailor_Made 20.11.19 11:57 Сейчас в теме
Здравствуйте! УТП 8.3(Обычные формы)

Есть документ "Реализация товаров и услуг", в нём ТЧ.Расшифровка(куда вписаны Исполнители(Контрагенты) и задачи, которые они сделали).
Далее на основании Реализации создаю "Поступление товаров и услуг", где есть такая же ТЧ.Расшифровка. Но одно не могу понять: как сделать, чтобы для Каждого исполнителя из ТЧ.Расшифровка(из Реализации) создавалась отдельное Поступление и туда попадали только его Задачи. Прошу помочь
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
25. Ганс 20.11.19 13:13 Сейчас в теме +0.3 $m
(1)
1) Создать кнопку ( создать Поступление товаров и услуг)
2) далее прописываем:
ТЧИсполнитель= Док.Расшифровка.Свернуть("Исполнитель");
	Для Каждого стр из ТЧИсполнительЦикл
		ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
		ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
		ДокПтиУ.Заполнить(ссылка);
		Док.ПолучитьФорму().Открыть(); 
	КонецЦикла;


3) В модуле документа Постпления ищем процедуру "ОбработкаЗаполнения"

в ней находим где у нас заполняется ТЧ Расшифровка и дальше делаем что-то типа:
Если ДополнительныеСвойства.Свойство("Исполнитель") И ЗначениеЗаполнено(ДополнительныеСвойства.Исполнитель) Тогда
//Тут пишем заполнения по сотруднику, можно в лоб перебрать все строки из документа основания и проверить совпадает ли у нас исполнитель с тем что находится в ДополнительныеСвойства.Исполнитель
Иначе
//а тут оставляем типовое заполнение ТЧ Расшифровки
КонецЕсли;


Не претендую на истину, но вполне рабочий вариант
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. YannikAlx 43 20.11.19 12:01 Сейчас в теме
(1)
Но одно не могу понять

Так обычным циклом по срокам ТЧ и заполняйте...
В чем ваши проблемы конкретно не понятно ...
3. Tailor_Made 20.11.19 12:03 Сейчас в теме
(2)Если в ТЧ.Расшифровка документа Реализация товаров есть к примеру Исполнитель1 и Исполнитель2, то нужно создать два документа Поступление товаров и услуг. В одном Контрагентом будет выступать Исполнитель1, в другом - Исполнитель2
4. YannikAlx 43 20.11.19 12:07 Сейчас в теме
(3) ну так вы же создаете как-то 2 документа Поступления, вот и заполняйте соответствующими данными, ведь при создании вы же имеете текущие данные по конкретному Исполнителю, ну и берите данные для Поступления из этих текущих данных....
5. Tailor_Made 20.11.19 12:10 Сейчас в теме
(4)в том то и дело, что не создаю. Не знаю, как это сделать - чтобы с одной реализации создавались два Поступления(Или больше)
6. ben19791010 20.11.19 12:12 Сейчас в теме
(5) откройте любое типовое решение подобной задачи и всё станет яснее(в БП это много где реализовано, в вашей конфе не знаю )
7. Tailor_Made 20.11.19 12:13 Сейчас в теме
(6)могли бы вы подсказать, где искать?
8. ben19791010 20.11.19 12:15 Сейчас в теме
(7) у меня нет такой конфигурации УТП (в бп могу сказать)
9. Tailor_Made 20.11.19 12:16 Сейчас в теме
(8)бп это БСП? А в ней где?
10. ben19791010 20.11.19 12:23 Сейчас в теме
(9)откройте любой документ - ввод на основании / является основанием (и воспользуйтесь конструктором ввода на основании)
Прикрепленные файлы:
11. Tailor_Made 20.11.19 12:27 Сейчас в теме
(10)я, наверное, не правильно объяснил проблему. Как просто создать документ на основании другого я понимаю. Но у меня немного другая задача:
Есть Документ реализация товаров, в ней есть ТЧ.Расшифровка(Задача, Исполнитель...)
Нужно при создании документа Поступление товаров создать не один документ, а столько - сколько различных Исполнителей в ТЧ.Расшифровка(Чтобы для каждого исполнителя свой задачи записать)
12. ben19791010 20.11.19 12:30 Сейчас в теме
(11)вот столько раз и создадите документ сколько в цикле строк обойдёте с исполнителями (я же не могу за вас это сделать)
15. Tailor_Made 20.11.19 12:35 Сейчас в теме
(12)в где бы следовало этот цикл разместить? В Процедуре ПередОткрытием документа ПОступление товаров и услуг?
21. ben19791010 20.11.19 12:57 Сейчас в теме
(15) вы бы всё-таки попробовали конструктором воспользоваться... я ж не знаю есть ли в вашей конфе общий модуль ЗаполнениеДокументов (например)
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ФИЛ_УчетМЦ04") Тогда
		// Заполнение шапки
		Организация = ДанныеЗаполнения.Организация;
		Склад = ДанныеЗаполнения.Склад;
		Для Каждого ТекСтрокаМЦ04 Из ДанныеЗаполнения.МЦ04 Цикл   //МЦ04 это таб часть документа-основания 
			НоваяСтрока = Материалы.Добавить();
			НоваяСтрока.Номенклатура = ТекСтрокаМЦ04.Номенклатура;   //здесь соответств Реквизит ТЧ МЦ04 - документа-основания
		КонецЦикла;
	КонецЕсли;
	//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Показать
13. ZergKRSK 129 20.11.19 12:32 Сейчас в теме
(11) В Расшифровке может быть один и тот же Исполнитель но с разными задачами?
14. Tailor_Made 20.11.19 12:35 Сейчас в теме
(13)может быть и так
могут быть несколько разных Исполнителей с разными задачами
16. ZergKRSK 129 20.11.19 12:36 Сейчас в теме
(14) если один и тот же Исполнитель встречается два раза но с разными задачами - Поступлений будет сколько? Два или одно?
17. Tailor_Made 20.11.19 12:43 Сейчас в теме
(16)Одно. В ТЧРасшифровка документа "Поступления товаров" просто должны попасть эти две разные задачи
18. ZergKRSK 129 20.11.19 12:47 Сейчас в теме
(17) при всём этом Поступления еще должны заполниться данными по типовым алгоритмам? Или же вам просто надо создать пустые Поступления, но главное правильное их количество?
19. Tailor_Made 20.11.19 12:54 Сейчас в теме
(18)К примеру
Есть Реализация в которой:
Услуги
Услуга | 30 часов

Расшифровка
Исполнитель1 | Задача1 | 10 часов
Исполнитель1 | Задача2 | 5 часов
Исполнитель2 | Задача3 | 15 часов

Создаются 2 Поступления:
- в одном Контрагент = Исполнитель1
Услуги = Услуга | 15 часов
Расшифровка =
Задача1 | 10 часов
Задача2 | 5 часов

-второе поступление Контрагент = Исполнитель2
Услуги = Услуга | 15 часов
Расшифровка =
Задача3 | 15 часов
20. Tailor_Made 20.11.19 12:54 Сейчас в теме
(18)то есть, нужно бы делить по поступлениям Задачи каждого Исполнителя из Расшифровок
23. user856012 13 20.11.19 13:03 Сейчас в теме
(1)
Далее на основании Реализации создаю "Поступление товаров и услуг"
Вручную создаете? Или хотите, чтобы эти два (или больше) документа создавались автоматически?

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

Вот втором варианте надо делать отдельную обработку или дописывать функционал в документ Реализация - например, создавать кнопку с соответствующим кодом.
22. Kovekh 20.11.19 12:59 Сейчас в теме
Вам бы для начала хоть литературу почитать по программированию. Здесь-то за вас многое могут сделать, но вечно на чужом горбу не получится кататься) Задачка-то элементарная и буквально на 5 минут, если иметь хотя бы начальный уровень программирования
24. Tailor_Made 20.11.19 13:04 Сейчас в теме
25. Ганс 20.11.19 13:13 Сейчас в теме +0.3 $m
(1)
1) Создать кнопку ( создать Поступление товаров и услуг)
2) далее прописываем:
ТЧИсполнитель= Док.Расшифровка.Свернуть("Исполнитель");
	Для Каждого стр из ТЧИсполнительЦикл
		ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
		ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
		ДокПтиУ.Заполнить(ссылка);
		Док.ПолучитьФорму().Открыть(); 
	КонецЦикла;


3) В модуле документа Постпления ищем процедуру "ОбработкаЗаполнения"

в ней находим где у нас заполняется ТЧ Расшифровка и дальше делаем что-то типа:
Если ДополнительныеСвойства.Свойство("Исполнитель") И ЗначениеЗаполнено(ДополнительныеСвойства.Исполнитель) Тогда
//Тут пишем заполнения по сотруднику, можно в лоб перебрать все строки из документа основания и проверить совпадает ли у нас исполнитель с тем что находится в ДополнительныеСвойства.Исполнитель
Иначе
//а тут оставляем типовое заполнение ТЧ Расшифровки
КонецЕсли;


Не претендую на истину, но вполне рабочий вариант
26. Tailor_Made 20.11.19 13:40 Сейчас в теме
(25)
ТЧИсполнитель= Док.Расшифровка.Свернуть("Исполнитель");
Для Каждого стр из ТЧИсполнительЦикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
Док.ПолучитьФорму().Открыть();
КонецЦикла;


Сейчас испытаю. А возможно ли без создания кнопки обойти? Можно этот фрагмент кода вставить в стандартное формирование документа на основании?
27. Ганс 20.11.19 13:50 Сейчас в теме
стандартное формирование уходит сразу в заполнение, поэтому через кнопку. Можно добавить кнопку туда же где и типовая, просто в скобочках указать что-нибудь например "по исполнителям" и они будут рядом, одна под другой)
28. Tailor_Made 20.11.19 14:08 Сейчас в теме
(27)такая вот ошибка вышла
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(4261)}: Обращение к процедуре объекта как к функции (Свернуть)
ТЧИсполнитель= ЭтотОбъект.Расшифровка.Свернуть("Исполнитель");
29. Tailor_Made 20.11.19 14:09 Сейчас в теме
(27)так вот процедура выглядит
Процедура ДействияФормыСоздатьПоступлениеТоваровИУслуг(Кнопка)

ТЧИсполнитель= ЭтотОбъект.Расшифровка.Свернуть("Исполнитель");
Для Каждого стр из ТЧИсполнитель Цикл
ДокПтиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокПтиУ.ДополнительныеСвойства.Вставить("Исполнитель", стр.Исполнитель );
ДокПтиУ.Заполнить(ссылка);
ЭтотОбъект.ПолучитьФорму().Открыть();
КонецЦикла;

КонецПроцедуры
30. Ганс 20.11.19 14:15 Сейчас в теме
(29) Пропустил я строчку, надо так:
ТЧИсполнитель= ЭтотОбъект.Расшифровка.Выгрузить(,"Исполнитель");
ТЧИсполнитель.Свернуть("Исполнитель");
Tailor_Made; +1 Ответить
31. Tailor_Made 20.11.19 14:21 Сейчас в теме
(30)Отладчиком посмотрел, вроде на этом моменте всё верно, но документы не создаются/не открываются
32. Ганс 20.11.19 14:25 Сейчас в теме +0.28 $m
(31)
ЭтотОбъект.ПолучитьФорму().Открыть();
Меняем на
ДокПтиУ.ПолучитьФорму().Открыть();

Но не прописав ничего в модуле поступления вы получите столько документов, сколько у вас Исполнителей в расшифровке и они будут все одинаковые.
33. Tailor_Made 20.11.19 14:30 Сейчас в теме
(32)оооо, так получилось. Буду теперь думать, как правильно описать заполнение по Исполнителях
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)