gifts2017

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

Опубликовал Кирилл Панфилов (PanKir) в раздел Обработки - Обработка документов

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

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

Минусы:

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

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

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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

могу тогда предложить как вариант - сделать аналог на 8.1 простым копированием модулей и реквизитов и созданием аналогичной формы.
всё же не с нуля начинать )))
9. Mark Simus (marts-ya) 07.05.11 16:52
попробовал из "заказа покупателя" скопировать ТЧ в другой заказ покупателя. В ТЧ 1 строка в табл. Товары. РЕЗУЛЬТАТ:
{Форма.Форма.Форма(9)}: Индекс находится за границами массива
СтрокаПриемник = ДокументПриемник.ПолучитьФорму().Товары[ДокументПриемник.ПолучитьФорму().Товары.Количество()-1];
10. Кирилл Панфилов (PanKir) 10.05.11 09:23
(9) Хз что там у Вас случилось, это надо разбираться на месте, пошагово.
Посмотрел у себя, всё работает. А с другими вариантами пар документов тоже самое?
Если в других вариантах всё норм, то вероятней всего в этом случае Вы делаете что-то не так...
11. Эстер Коган (e.kogan) 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) 06.07.11 16:01
допилить на:
Процедура КнопкаВыполнитьНажатие(Кнопка)
	Ответ = Вопрос("Перед копированием будет очищена Табличная Часть документа-приемника. Продолжить?", РежимДиалогаВопрос.ДаНет, , , "Вы уверены???");
	ДокПриемник=ДокументПриемник.ПолучитьОбъект();
	Если Ответ = КодВозвратаДиалога.Да Тогда 
		ДокПриемник.Товары.Очистить();
		Для Каждого ТекСтрока Из ДокументИсточник.Товары Цикл 
			СтрокаПриемник = ДокПриемник.Товары.Добавить();
			//СтрокаПриемник = ДокументПриемник.ПолучитьФорму().Товары[ДокументПриемник.ПолучитьФорму().Товары.Количество()-1];
			Для Каждого Строка Из ТабличнаяЧастьИсточник Цикл 
				Если Строка.Флажок Тогда
					Попытка
						СтрокаПриемник[Строка.Наименование] = ТекСтрока[Строка.Наименование];
					Исключение
						
					КонецПопытки;
				КонецЕсли;
			КонецЦикла;
		КонецЦикла;
	КонецЕсли;
	ДокПриемник.записать();
КонецПроцедуры
...Показать Скрыть



тогда работает
14. Кирилл Панфилов (PanKir) 24.08.11 09:30
долго меня тут не было...
исправил процедуру как предложили в последнем коменте.
15. Геннадий Долгих (FlyLink) 18.10.11 08:55
16. Алексей Захаров (almas) 16.01.12 09:20
Табличные части не только в документах...
17. Кирилл Панфилов (PanKir) 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) 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) 26.02.13 07:53
(24) rustork,
а что за документы и под какой конфигурацией работаешь?
26. Елена Елена (сон) 27.05.13 20:19
БП2:
Если источник "Авнсовый отчет", а приемник "Треб-накладная", то сообщения:
- Неверно выбран тип одного из документов!!!
- {Форма.Форма.Форма(79)}: Значение не является значением объектного типа (Колонки)
Для Каждого Колонка Из ТППриемник.Колонки Цикл

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