gifts2017

Копирование табличной части из другого документа (Управляемая форма)

Опубликовал Алексей (Leksus) в раздел Обработки - Обработка документов

Обработка позволяет загрузить табличную часть документа из другого документа (например Реализацию по Поступлению). Обработка написана по технологии БСП и легко подключается как внешняя обработка.
Поставляется с открытым кодом и может служить примером для создания других подключаемых обработок.

Обработка поставляется с открытым кодом и может служить примером для создания других подключаемых обработок.

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


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

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

Наименование Файл Версия Размер
Форма обработки 419
.epf 10,82Kb
07.02.12
419
.epf 10,82Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Rino (Rino) 08.02.12 11:59
Может быть полезной, спасибо
2. Bob Bob (bobmaxm) 08.02.12 15:41
Точно! Однозначно пригодиться в работе. Спасибо!
3. Artem Lapa (Artemuch) 08.02.12 19:10
Да обработка на управляемых формах пока еще редкость
4. Дмитрий Гомзин (plevakin) 09.02.12 11:56
Табличная часть копируется полностью или есть возможность задавать произвольные отборы?
5. Алексей (Leksus) 09.02.12 12:03
(4) plevakin, копируется полностью (заменяя предыдущее содержимое), т.е. используется метода Загрузить(). Код открыт - совершенствуйте на здоровье!
6. Сергей Белов (Unicorn31) 12.02.12 11:52
спасибо ! но немного придется доработать под свою задачу...
7. анна79 (Анна79) 15.02.12 10:05
Спасибо, мне такая точно пригодится!!!
8. Angry (Angry) 16.02.12 08:14
Идея, конечно, не новая, но наконец и до управляемых форм добираться стали. 1С обещают подобные фишки только в следующей версии.
Есть моменты, которые не плохо бы отразить в описании:
Наименование табличных частей само заполняется?
Написано по всем задумкам БСП или для удобной работы пользователя? Т.е. при загрузке табличной части сохраняется документ или всё же можно перезагрузить сохраненный вариант7
Каждую вроде интересную обработку тут достаточно затруднительно качать, потому эта информация будет довольно полезна.
9. Алексей (Leksus) 16.02.12 09:21
(8) Angry, я выложил обработку для того, чтобы программисты, которые только начинают работать с управляемыми формами могли посмотреть хоть какой-то работающий пример. Т.е. в образовательных целях.
Обработку можно использовать и в рабочей информационной базе, но необходимо помнить, что табличная часть документа полностью замещается новой, после чего документ записывается! Сейчас отражу это в описании...
10. Natik xalilov (okanat) 17.02.12 13:44
В УПП можно использовать данную вещицу?
11. Алексей (Leksus) 17.02.12 13:55
(10) okanat, нет, на сколько я знаю в УПП в настоящий момент не используется подсистема дополнительных отчетов и обработок из БСП. Там используется своя другая подсистема.
13. anado (Samojlov_Denis) 24.02.12 12:05
(9) Leksus, В УТ 11.0.7.13 выдаёт ошибку, при чём тут эксель не понял

{Форма.Форма.Форма(187,2)}: Процедура или функция с указанным именем не определена (ПоискИОбработкаНоменклатуры)
<<?>>ПоискИОбработкаНоменклатуры(МассивСтрокExcel);
14. Алексей (Leksus) 26.02.12 19:39
(13) anado, такого кода в обработке нет. Наверное какой-то глюк - попробуйте скачать обработку еще раз.
15. anado (Samojlov_Denis) 27.02.12 06:48
(14) Leksus, странно действительно глючит, обработка та же, а ошибку не могу воспроизвести - вроде не сильно гуляли 23-го =)
Заодно и в 11.0.7.16 проверил - работает
16. anado (Samojlov_Denis) 27.02.12 08:59
Кстати есть вопрос я тут на днях конструктором баловался по схожей теме данные кидал из заказа клиента в документ поступления, всё кидается нормально, проводится - но как то коряво, в отчетах по взаиморасчетам документ не появляется - где грабли?

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

	Перем СкладПоступления;
	Перем РеквизитыШапки;
	
	ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);

	Если ТипДанныхЗаполнения = Тип("Структура") Тогда
		
		Если ДанныеЗаполнения.Свойство("ДокументОснование")
			И (ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("ДокументСсылка.ЗаказПоставщику")
			Или ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("Массив")) Тогда

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

		Иначе

			ЗаполнитьДокументПоОтбору(ДанныеЗаполнения);
		КонецЕсли;
		
	ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказПоставщику") Тогда
		ЗаполнитьДокументНаОснованииЗаказаПоставщику(ДанныеЗаполнения, СкладПоступления);
	ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ВозвратТоваровПоставщику") Тогда
		ЗаполнитьДокументНаОснованииВозвратаТоваровПоставщику(ДанныеЗаполнения);
	ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") Тогда
		
                // Заполнение по Заказу клинта
		
		ВалютаВзаиморасчетов = ДанныеЗаполнения.Валюта;
		Валюта = ДанныеЗаполнения.Валюта;
		ГруппаФинансовогоУчета = ДанныеЗаполнения.ГруппаФинансовогоУчета;
		ПодотчетноеЛицо = ДанныеЗаполнения.Менеджер;
		Менеджер = ПараметрыСеанса.ТекущийПользователь;
		Принял = ПараметрыСеанса.ТекущийПользователь;
		НалогообложениеНДС = ДанныеЗаполнения.НалогообложениеНДС;
		Организация = ДанныеЗаполнения.Организация;
		Склад = ДанныеЗаполнения.Склад;
		ЦенаВключаетНДС = ДанныеЗаполнения.ЦенаВключаетНДС;
		Подразделение = ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Менеджер,Подразделение);
		Для Каждого ТекСтрокаДополнительныеРеквизиты Из ДанныеЗаполнения.ДополнительныеРеквизиты Цикл
			НоваяСтрока = ДополнительныеРеквизиты.Добавить();
			НоваяСтрока.Значение = ТекСтрокаДополнительныеРеквизиты.Значение;
			НоваяСтрока.Свойство = ТекСтрокаДополнительныеРеквизиты.Свойство;
			НоваяСтрока.ТекстоваяСтрока = ТекСтрокаДополнительныеРеквизиты.ТекстоваяСтрока;
		КонецЦикла;
		Для Каждого ТекСтрокаСерии Из ДанныеЗаполнения.Серии Цикл
			НоваяСтрока = Серии.Добавить();
			НоваяСтрока.Количество = ТекСтрокаСерии.Количество;
			НоваяСтрока.Номенклатура = ТекСтрокаСерии.Номенклатура;
			НоваяСтрока.Серия = ТекСтрокаСерии.Серия;
			НоваяСтрока.Склад = ТекСтрокаСерии.Склад;
			НоваяСтрока.Характеристика = ТекСтрокаСерии.Характеристика;
		КонецЦикла;
		Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
			НоваяСтрока = Товары.Добавить();
			НоваяСтрока.КодСтроки = ТекСтрокаТовары.КодСтроки;
			НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
			НоваяСтрока.КоличествоУпаковок = ТекСтрокаТовары.КоличествоУпаковок;
			НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
			НоваяСтрока.Склад = ТекСтрокаТовары.Склад;
			НоваяСтрока.СтавкаНДС = ТекСтрокаТовары.СтавкаНДС;
			НоваяСтрока.СтатусУказанияСерий = ТекСтрокаТовары.СтатусУказанияСерий;
			НоваяСтрока.Сумма = ТекСтрокаТовары.Сумма;
			НоваяСтрока.СуммаНДС = ТекСтрокаТовары.СуммаНДС;
			НоваяСтрока.СуммаСНДС = ТекСтрокаТовары.СуммаСНДС;
			НоваяСтрока.Упаковка = ТекСтрокаТовары.Упаковка;
			НоваяСтрока.Характеристика = ТекСтрокаТовары.Характеристика;
			НоваяСтрока.Цена = ТекСтрокаТовары.Цена;
		КонецЦикла;
	
	ИначеЕсли ТипДанныхЗаполнения = Тип("СправочникСсылка.СоглашенияСПоставщиками") Тогда
		ЗаполнитьДокументНаОснованииСоглашенияСПоставщиком(ДанныеЗаполнения);
	КонецЕсли;

	ИнициализироватьДокумент();

КонецПроцедуры // ОбработкаЗаполнения()
...Показать Скрыть


З.Ы. Кстати ваша обработка так же себя ведёт - пока галочкой "по заказу" не побалуюсь нормально не проводится.
17. Алексей (Leksus) 27.02.12 09:28
(16) anado, видимо не заполняются какие-то служебные реквизиты в табличной части. Попробуйте сравнить табличную часть до и после установки/снятия флага "по заказу" - поймете в чем дело.
18. anado (Samojlov_Denis) 27.02.12 09:51
Да в том то и прикол, что визуально 1 к 1. Я помню в 11.0.6.9 было что количество указано в форме, а 1с ругается что не указано количество - ручками перебивал и все проводилось без проблем
19. anado (Samojlov_Denis) 27.02.12 11:43
проблема решена, спасибо за советы
20. Ilya Anatolevich (Bless.you) 01.03.12 07:50
Извините, а нет обработки чтобы не скопировать, а просто загрузить табличную часть без заполнения всех остальных реквизитов. Например: есть остатки на складе, мне нужно их выписать в магазин, то есть просто создать документ движения товаров, но в ручную подбирать позиции -- это жесть... Если бы сохранить в файлик данные из отчета остатки на складе, а потом загрузить его в перемещение товаров... Или я сейчас не в ту тему пишу? Заранее простите, у нас только поставили эту программу -- ни фига не понятно куда тыкаться...
21. Алексей (Leksus) 01.03.12 09:24
(20) Bless.you, Есть универсальная обработка загрузки документа (произвольного) из Excel, но она платная http://infostart.ru/public/103546/
22. Ilya Anatolevich (Bless.you) 01.03.12 09:43
Да, ее я тоже нашел. Спасибо)
23. Алексей (popovalex) 05.03.12 16:25
Очень полезная обработка. Особенно как пример подключения внешних обработок в управляемых формах.
24. Александр Булейко (big60) 07.03.12 10:10
На скриношоте у Вас засветилась обработка "Загрузка из экселя". Не собираетесь ей поделиться? Очень нужна, а самому писать просто жуть как некогда. Даже не писать, а перенести из 7.7
26. Паха (VapPaha) 26.03.12 07:54
прикольная, обработка сам хотел написать, что то подобное!
27. Дмитрий Воробьев (vde69) 22.02.13 12:40
в целом ничего, хотя есть два явных минуса

1. не реализована работа с мульти выбором (ну это ладно...)
2. принудительно записывает документ, что исключает возможнось отменить путем вызода без сохранения (эту проблемму счас кручу, надеюсь что к вечеру допинаю, что-бы изменялось все только в открытой форме)
28. Марина Чирина (chmv) 06.08.13 15:45
29. Серега (serezhick) 04.07.14 14:33
30. Анна Ни (Anyu-n) 05.12.14 10:23
Спасибо!!!! практически единственная "обработка табличной части документа" на управляемых формах, НО ПОСЛЕ ОБРАБОТКИ, ПРИ ПРОВЕДЕНИИ ДОКУМЕНТА ВЫВАЛИВАЕТСЯ ДАМП!!!! Уже голову всю сломала... Касперского нет, с видюхой все ок, ТиИ и чекдбфл - всеок.... именно при заполнении документа вашей обработкой.... подскажите что могло пойти не так.....
31. Анна Ни (Anyu-n) 05.12.14 10:36
Если что 1С:Предприятие 8.3 (8.3.5.1248), Управление торговлей, редакция 11.1 (11.1.9.51)
На других машинах с другой базой то же....
32. Алексей (Leksus) 05.12.14 16:48
(31) Anyu-n, пока это не поборол. Если переключить отображение с "в закладках" на "в отдельных окнах", то все ок