gifts2017

Объединение документов

Опубликовал Михаил Семенов (Shaman100M) в раздел Обработки - Свертка базы

Универсальное объединение нескольких (одного вида) документов в итоговый:

- выбор документа-основания для заполнения шапки
- суммирование итогов по числовым реквизитам шапки
- объединение табличной части.
- свертка табличной части, вычисляемые пересчитываемые колонки (цена, например)
- заполнение колонок табличной части, не участвующих в свертке.
Обработка "Объединение документов"

Обработка создает итоговый документ, объединяющий в себе несколько документов
одного вида:
заполнение шапки документа на основании заданного,
суммирование итогов по числовым реквизитам шапки (например, СуммаВзаиморасчетов),
объединение и свертка заданных числовых реквизитов (Количество, Сумма) по заданным реквизитам-группировкам (Номенклатура) в табличной части,
автозаполнение и вычисление оставшихся данных табличной части (Цена)

Основные моменты:
- Задается вид документа. Если раньше пользователь настраивал обработку для данного вида, прежняя настройка восстановится.
- Подбор документов для объединения в список значений из предложенных журналов и отметка документа-основания для реквизитов шапки итогового
- Задаются поля группировки свертки табличной части, отмечаются числовые поля для суммирования.
- Вычисляемые поля задаются прямым кодом в текстовом поле, поэтому оно доступно только при отключении контроля прав доступа, по идее, настраивается 1с-ником в соответствии с конфигурацией
- Все остальные, не свертываемые реквизиты табличной части заполняются первым непустым значением.
- Отмечаются суммируемые поля шапки объединяемых документов.
- Возможность посмотреть структуру документа, названия, тип, вид реквизитов (для предыдущего пункта)
- Открытие записанного документа с заполненной табличной частью.

Изменения от 12.04.2007

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

Изменения от 04.04.2007

- Исправлен подбор документов, в список журналов для подбора добавлены все общие журналы.

Изменения от 15.03.2007

- Исправлена кнопка "открыть в журнале" - не работало при отсутствии компоненты "Бухгалтерский учет"
(Метаданные.ДокументОперации.Идентификатор)

Изменения от 12.03.2007

- Сделал недоступным открытие нового документа. Недоступен и предустановлен только переключатель на форме, код остался рабочим.
- Возможность пометки на удаление объединяемых документов
- кнопка "открыть в журнале..."
- вычисление полей сделано в контексте документа (т.е. доступны ф-ции глобального модуля при пересчете табл. части, оперирующие документом в целом)
- вычисление полей можно делать / не делать при простом объединении ТЧ, без свертки
- сохранение настроек сделано единое для всех пользователей

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

Наименование Файл Версия Размер
DocUnion.zip 503
.1173652098 22,92Kb
25.09.09
503
.1173652098 22,92Kb Скачать

См. также

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

Комментарии

1. Сhe Burashka (CheBurator) 12.03.07 01:47
а пересчет, например, суммы взаиморасчетов...? фурычит? ;-)
2. Сhe Burashka (CheBurator) 12.03.07 01:49
у меня есть похожая мелочевочка, попроще возможностями...
http://infostart.ru/projects/267/?ref=174
есть возможность, например, настроил один раз схему объединения "реализаций" - и автоматом можно применить следующий раз...?
3. Михаил Семенов (Shaman100M) 12.03.07 01:59
Сумму взаиморасчетов фурычит.
Сохранение настроек - автоматом. Потом только документы подбирай.
ссылку посмотрим
4. Сhe Burashka (CheBurator) 12.03.07 02:16
О, если так - посмотрим!
1. В объединенных доках ТЧ "сворачивается"?
2. При "свертке" - партии сворачиваются корректно?
3. Поддерживает пометку на удаление объединенных-ненужных?
4. Поддерживает замену партий (ссылок)? например, если объединяется нескольо поступлений ТМЦ - в доках движения, где партии указаны явно - произвести подмену ссылок на партии поступления при необходимотси?
5. Сhe Burashka (CheBurator) 12.03.07 03:52
Нифига навскидку не понял, для чего эмулируем f9...?
6. Сhe Burashka (CheBurator) 12.03.07 03:53
Проводится ли пересчет данных при объединении доков с разными значениями шапок (ндс внутри, сверху, например?)
7. Михаил Семенов (Shaman100M) 12.03.07 09:28
Да там все написано.

F9 - это просто способ открыть новый документ с заполненной ТЧ (лучше открывать сохраненный, т.к. в ВводНового() возможно присвоение значений по умолчанию)

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

Чтобы партии при свертке корректно сворачивались, необходимо задать две группировки : "Номенклатура" и "Партия"

Пометки на удаление объединяемых документов нет, но это можно сделать. Просто факт необходимости удаления неявен. Раньше была галочка.

Замена партий (ссылок) происходит неявно. Для этого группировку указать только "Номенклатура". После свертки ТЧ заполнение партий будет происходить по принципу: перебор всех значений "Партия" для данной "Номенклатуры" и заполнение первого из них не пустого.

"Пересчет данных при объединении доков с разными значениями шапок (ндс внутри, сверху, например?)" это уже пахнет шаманством, однако, и это решаемо. "Вычисляемые поля", - задавай пересчет такой, какой нужен. Недостаток в моем решении - обрабатывается предварительная "ТЗ". по идее, здесь можно обрабатывать уже сформированный документ с корректным вызовом функций глобального модуля. Это подумаю. И будет полноценный пересчет.
8. Сhe Burashka (CheBurator) 12.03.07 11:55
> F9 - это просто способ открыть новый документ с заполненной ТЧ (лучше открывать сохраненный, т.к. в ВводНового() возможно присвоение значений по умолчанию)
..ниче не понимаю...
ну вот есть у тебя новый документ сформированный, записанный.. открыть его по ОткрытьФорму() - нельзя...?
9. Михаил Семенов (Shaman100M) 12.03.07 12:37
можно, просто кому как нравится.
10. Сhe Burashka (CheBurator) 12.03.07 13:48
ну ты великий шаман, однако...
11. cs25 (cs25) 12.03.07 22:07
Shamanу спасибо !!! Бывает надобность в таких Шаманстких ert-шках !!! Плюсуем !!!
12. GENDALF (Gendalf) 19.03.07 19:54
Хы, за идею точно +1... действительно что-то шаманское в это есть :)
13. Михаил Семенов (Shaman100M) 20.03.07 09:19
14. Михаил Семенов (Shaman100M) 12.04.07 15:03
исправил косячок,
добавил реальную возможность - предварительное приведение табличной части объединяемых документов, например, для колонки "Количество", - перед ее сверткой по всем документам проконтролировать и умножить на Коэффициент (естественно, без сохранения).
15. YARA (YARA) 28.02.08 16:27
Ни дать, ни взять - ШАМАН !!!
16. Антон (tosha) 13.03.08 15:08
а нет такого же но под восьмерочку?
17. Khaliff (Khaliff) 16.12.08 22:54
при запуске выдает:
Док.ДатаДок = Док3.ДатаДок;
{F:\PROG_USER\1C\DEMO_081\EXTFORMS\DOCUNION.ERT(799)}: Значение не представляет агрегатный объект (ДатаДок)

комплексная 7.7
18. Михаил Семенов (Shaman100M) 19.12.08 10:02
Спасибо. Это логическая ошибка определения документа для копирования шапки, - исправил. В случае (17): либо поля группировки по свертке ТЧ не заданы, либо реквизиты ТЧ для суммирования, - табличная часть просто объединяется, без свертки.
19. Виталий Тулинцев (neobagz) 12.04.10 15:31
при объединении 3 доков выдает

Если Таб1.ПолучитьЗначение(М3,"Поиск_Поле121") <> ПоиПо Тогда
{D:\ОСТАТКИ\ВИТ_ОБРАБОТКИ\DOCUNION.ERT(762)}: Номер за пределами значения!

можешь подсказать в чем причина?
pixelhead; +1 Ответить
20. Михаил Семенов (Shaman100M) 12.04.10 16:56
Данная строка в текущей версии обработки - 774. Обнови ее. Возможно, в текущей версии проблема решена.
pixelhead; +1 Ответить
21. Юрий Горбунов (pixelhead) 15.04.10 17:37
при объединении 3 доков выдает

Если Таб1.ПолучитьЗначение(М3,"Поиск_Поле121") <> ПоиПо Тогда
{D:\ОСТАТКИ\ВИТ_ОБРАБОТКИ\DOCUNION.ERT(774)}: Номер за пределами значения!

Тоже самое что и в 19 комменте только номер строки 774. Что делать?
22. Михаил Семенов (Shaman100M) 16.04.10 08:22
(21) если не трудно, прикрепи скриншот обработки с параметрами
23. Юрий Горбунов (pixelhead) 16.04.10 08:35
Скриншот во вложении. Уже со всеми параметрами пробовал. Все рано ошибка выходит.
Прикрепленные файлы:
24. Михаил Семенов (Shaman100M) 16.04.10 09:05
(23) хм... либо сворачивать по реквизиту "Цена", либо суммировать его (однако, смысла суммировать цену нет вообще - снять галку). С "Ценой" можно поступить: а) как указано на скринах, - добавить в Вычисляемое поле строку (оно доступно только для пользователя с галкой "Отключить контроль прав") Док.Цена = Док.Сумма / Док.Количество; б) не сворачивать по цене, - в этом случае в строку документа встанет первое значение цены, встретившееся для совокупности сворачиваемых реквизитов, проще говоря, цена товара из первого документа.

Включить видимость текста вычисляемых полей - заремарить 978 строку.
Прикрепленные файлы:
26. Y.Tz Цыганков (Y.Tz) 04.05.10 13:32
Класс! Подскажите: Как организовать в ТЧ результирующего документа добавление графы с информацией из шапок объединяемых документов (например, дата документа). Пример: у нас всего одно наименование номенклатуры - Трансп.услуги. Дата услуг в ТЧ берется из шапки документа. При объединении доков все даты записываются из помеченного документа с шапкой. Вложение: Скриншот результата объединения 5 документов.
Прикрепленные файлы:
27. Михаил Семенов (Shaman100M) 04.05.10 17:40
(26) Привести объединяемые документы к виду, в котором их обработка объединит, т.е. если я правильно понял - в объединяемых документах есть та же колонка, - заполнить ее датой родного документа, а при объединении указать эту колонку в полях группировки.
28. Y.Tz Цыганков (Y.Tz) 04.05.10 20:21
Так точно и делал, да указать колонку не могу, т.к. ее нет при выборе. Кстати как обнулить поля группировки? Я не просёк. Требуется простое объединение, когда все строки в ТЧ объединяемых доков просто переносятся в результирующий со всеми своими клетками. Все переносится как надо, а клетка Дата (та которая из шапки родного дока) не хочет, потому, что заполняется по образцу документа - прообраза шапки. Чего делать? Спасибо.
29. Михаил Семенов (Shaman100M) 05.05.10 09:41
"нет при выборе" - значит, ее нет в табличной части документа. Возможно ли ее в таком случае заполнить?
30. Михаил Семенов (Shaman100M) 05.05.10 09:42
+ (29) "Требуется простое объединение" , - для этого все три поля свертки д.б. пустыми.
31. Александр (karbofos) 06.10.11 09:50
Мой бух пользует эту обработку до сих пор. Для нее это актуально. Автору большое спасибо. Самому просто лень было заморачиваться.
32. SAshock 28.12.11 11:36
большое спасибо за труды, очень пригодилась в работе
33. Э. Лукманов (erthia) 10.02.14 06:16
При попытке объединения 4 документов пишет "Не удалось записать итоговый документ". Связано ли это с тем, что автонумерация нарушена?
35. Михаил Семенов (Shaman100M) 10.03.14 15:28
(33) да, это может быть. Установите рабочую дату (сервис - параметры) в периоде нумерации, в котором находился первый документ объединения, затем попробуйте создать новый документ этого вида и сохранить его.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа