IE2017

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

Обработки - Обработка документов

Когда документ создается "на основании", то ТЧ копируется автоматически, а что делать если первоначально был открыт совсем не тот документ что надо и с нужным документом он ничего общего, кроме ТЧ, не имеет и уже забито очень много строк в ТЧ? Перебивать всё заново, проставляя по новой количество и цену?

Данная внешняя обработка позволяет проанализировать ТЧ двух документов, выявить колонки имеющие подобные данные и по возможности перенести строки из ТЧ документа-источника в ТЧ документа-приемника.

Минусы:

  1. Не всегда имена колонок и соответствующих данных совпадают в обоих документах с точностью до буквы (например: ЕдиницаИзмерения и ЕдиницаИзмеренияМест или просто Единица).
  2. Не всегда в документе-источнике есть все колонки из документа-приемника.
  3. Перед тем как производить копирование надо создать документ-приемник и сохранить его.

Само собой список документов источников и приемников можно подкорректировать под себя.

Аналоги на InfoStart'е:

//infostart.ru/public/70480/ - под 8.1 и много настроек, которые в принципе можно даже сохранить и использовать в следующий раз.

//infostart.ru/public/16453/ - под 8.1, встраивается в дополнительные внешние отчеты и обработки как "Заполнение ТЧ". С одной стороны это удобно - встроил в ТЧ и пользуйся... С другой - не во всех конфигурациях все документы имеющие ТЧ оснащены кнопкой-подменю "Заполнить" (кажись такие видел, но уточнить не могу...)

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

Наименование Файл Версия Размер
обработка копирования ТЧ (исправленный)
.epf 13,64Kb
23.11.16
431
.epf 13,64Kb 431 Скачать

См. также

Комментарии
1. Дмитрий Веретенников (vdv_4462) 29.04.11 17:07 Сейчас в теме
Не смог разобраться, как можно подкорректировать список документов под свои нужды. А очень бы хотелось.
Возможно, это по моей бестолковости, у меня не очень много опыта.
2. Кирилл Панфилов (PanKir) 61 03.05.11 23:44 Сейчас в теме
(1) к сожалению сейчас нет времени добраться до конфигурации обработки, но на сколько я помню документы источник и приемник у меня оформлены как реквизиты обработки (не путать с реквизитами формы) и тип значений у меня проставлен в их свойствах.
3. Дмитрий Веретенников (vdv_4462) 04.05.11 11:21 Сейчас в теме
Да, все верно, понял. Спасибо!
4. Sk0rp Моя (Sk0rp) 103 06.05.11 12:32 Сейчас в теме
При открытии получаю: "Внешняя обработка не может быть прочитана текущей версией программы". При открытии конфигуратором сначала требование конвертации, затем все равно та же ошибка. Что делаю не так?
5. Кирилл Панфилов (PanKir) 61 06.05.11 13:51 Сейчас в теме
(4)а какая платформа у тебя? я делал на 8.2.13.202 (и до сих пор на этой платформе, ещё не обновлял)
может из-за этого, хотя признаюсь тут я не знаток.
может попробовать в конфигураторе пересохранить обработку под своим именнем... хз...
6. Sk0rp Моя (Sk0rp) 103 06.05.11 14:10 Сейчас в теме
У меня 1С:Предприятие 8.1.13.41, в описании обработки сказано, что она должна работать в том числе и на 8.0
Пересохранить в конфигураторе её невозможно, т.к. я уже написал, что там она тоже не открывается с той же ошибкой.
7. Кирилл Панфилов (PanKir) 61 06.05.11 17:23 Сейчас в теме
(6)прошу прощения, моя оплошность, видимо всё что сделано на 8.2 нельзя использовать на 8.1 и 8.0 (((
хотя обратное и работает...

могу тогда предложить как вариант - сделать аналог на 8.1 простым копированием модулей и реквизитов и созданием аналогичной формы.
всё же не с нуля начинать )))
8. Ийон Тихий (cool.vlad4) 41 06.05.11 17:28 Сейчас в теме
9. Mark Simus (marts-ya) 07.05.11 16:52 Сейчас в теме
попробовал из "заказа покупателя" скопировать ТЧ в другой заказ покупателя. В ТЧ 1 строка в табл. Товары. РЕЗУЛЬТАТ:
{Форма.Форма.Форма(9)}: Индекс находится за границами массива
СтрокаПриемник = ДокументПриемник.ПолучитьФорму().Товары[ДокументПриемник.ПолучитьФорму().Товары.Количество()-1];
10. Кирилл Панфилов (PanKir) 61 10.05.11 09:23 Сейчас в теме
(9) Хз что там у Вас случилось, это надо разбираться на месте, пошагово.
Посмотрел у себя, всё работает. А с другими вариантами пар документов тоже самое?
Если в других вариантах всё норм, то вероятней всего в этом случае Вы делаете что-то не так...
11. Эстер Коган (e.kogan) 1825 18.05.11 10:30 Сейчас в теме
12. Oleg il (21oleg6) 13.06.11 16:34 Сейчас в теме
1С:Предприятие 8.2 (8.2.12.80)
пробовал из "поступления товаров и услуг" скопировать всё и только номенклатуру в другое "поступление товаров и услуг"
При этом в документе источнике 2 строки-проведён, в документе приёмнике нет строк(пустой)-непроведён.
В результате выдает ошибку : Индекс находится за границами массива. Подробно: {Форма.Форма.Форма(9)}: Индекс находится за границами массива
СтрокаПриемник = ДокументПриемник.ПолучитьФорму().Товары[ДокументПриемник.ПолучитьФорму().Товары.Количество()-1];
Если в документ приемник добавить строку, то ошибки нет, но никакого копирования не происходит..:(
13. shard (shard) 246 06.07.11 16:01 Сейчас в теме
допилить на:
Процедура КнопкаВыполнитьНажатие(Кнопка)
	Ответ = Вопрос("Перед копированием будет очищена Табличная Часть документа-приемника. Продолжить?", РежимДиалогаВопрос.ДаНет, , , "Вы уверены???");
	ДокПриемник=ДокументПриемник.ПолучитьОбъект();
	Если Ответ = КодВозвратаДиалога.Да Тогда 
		ДокПриемник.Товары.Очистить();
		Для Каждого ТекСтрока Из ДокументИсточник.Товары Цикл 
			СтрокаПриемник = ДокПриемник.Товары.Добавить();
			//СтрокаПриемник = ДокументПриемник.ПолучитьФорму().Товары[ДокументПриемник.ПолучитьФорму().Товары.Количество()-1];
			Для Каждого Строка Из ТабличнаяЧастьИсточник Цикл 
				Если Строка.Флажок Тогда
					Попытка
						СтрокаПриемник[Строка.Наименование] = ТекСтрока[Строка.Наименование];
					Исключение
						
					КонецПопытки;
				КонецЕсли;
			КонецЦикла;
		КонецЦикла;
	КонецЕсли;
	ДокПриемник.записать();
КонецПроцедуры
...Показать Скрыть



тогда работает
14. Кирилл Панфилов (PanKir) 61 24.08.11 09:30 Сейчас в теме
долго меня тут не было...
исправил процедуру как предложили в последнем коменте.
15. Геннадий Долгих (FlyLink) 18.10.11 08:55 Сейчас в теме
16. Алексей Захаров (almas) 188 16.01.12 09:20 Сейчас в теме
Табличные части не только в документах...
17. Кирилл Панфилов (PanKir) 61 16.01.12 09:34 Сейчас в теме
(16) almas, понимаю, но обычно справочники и документы не путают, когда заполняют ТЧ.
но идея хорошая, если будет свободное время, подумаю как переделать обработку под справочники, а пока на работе запарка и шеф не дает продохнуть... (
18. Александр Анатольевич (alex_asoft) 17.01.12 22:00 Сейчас в теме
Спасибо за обработку , помогла
19. Migel M. Volos (Cartman) 11.02.12 13:29 Сейчас в теме
Добавил в ТабличнуюЧастьИсточник поле синоним.
В модуле после:
ТабличнаяЧастьИсточник[ТабличнаяЧастьИсточник.Количество()-1].Наименование = Имя;

дописал:
ТабличнаяЧастьИсточник[ТабличнаяЧастьИсточник.Количество()-1].Синони = Имя;


строку:
СтрокаПриемник[Строка.Наименование] = ТекСтрока[Строка.Наименование];

поменял на:
СтрокаПриемник[Строка.Синоним] = ТекСтрока[Строка.Наименование];


Пишем в синоним реквизит как он называется в приемнике. И пункт 1 из минусов можно убирать.
20. Паха (VapPaha) 26.03.12 11:27 Сейчас в теме
хочу попробовать работу этой обработки, надеюсь поможет.
21. Паха (VapPaha) 26.03.12 11:30 Сейчас в теме
хотя у меня задача перекинуть таблицу одного документа в другой из регистра бух
22. Кирилл Панфилов (PanKir) 61 27.03.12 20:54 Сейчас в теме
(21) VapPaha, ну добавить тип документа, который нужен именно Вам, нет проблем, главное чтоб в обоих документах были аналогичные табличные части...

З.Ы. а при чем тут регистр бух? документ он и в Африке документ, не зависимо от регистра...
23. Елена Елена (сон) 22.11.12 12:58 Сейчас в теме
(13)и (22)- спасибо! обработка оказалась полезной. Заработала после исправленний (13).
24. Дмитрий Аистов (rustork) 20.02.13 07:40 Сейчас в теме
Добавил свои документы... вылетает с ошибкой....
{Форма.Форма.Форма(40)}: Значение не является значением объектного типа (Колонки)
Для Каждого Колонка Из ТПИсточник.Колонки Цикл

Пока разбираюсь...
25. Кирилл Панфилов (PanKir) 61 26.02.13 07:53 Сейчас в теме
(24) rustork,
а что за документы и под какой конфигурацией работаешь?
26. Елена Елена (сон) 27.05.13 20:19 Сейчас в теме
БП2:
Если источник "Авнсовый отчет", а приемник "Треб-накладная", то сообщения:
- Неверно выбран тип одного из документов!!!
- {Форма.Форма.Форма(79)}: Значение не является значением объектного типа (Колонки)
Для Каждого Колонка Из ТППриемник.Колонки Цикл

???
27. Кирилл Панфилов (PanKir) 61 29.05.13 15:06 Сейчас в теме
(26) сон,
Если я правильно понял что БП2 - это бухгалтерия, то ошибка ясна:
эти документы не содержат идентичных табличных частей, то есть с одинаковым названием.
предполагалось что в обоих документах должна быть ТЧ - ТОВАРЫ, а в требовании-накладной такой ТЧ нет
можно немного доработать обработку, и даже примерно понимаю в какую сторону идти, но пока у меня нет времени...
может летом, когда пойду в отпуск у меня появится немного свободного времени и я что-нить придумаю :)
28. Елена Елена (сон) 29.05.13 21:11 Сейчас в теме
29. Maxim Odinsov (Odinsov) 11 01.04.14 13:54 Сейчас в теме
Спасибо, обработка помогла.
Оставьте свое сообщение