[Расширения] Пример копирования дополнительных сведений документа

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

Если у справочника или документа имеются дополнительные сведения, то при создании нового копированием они не записываются в новый объект, т.к. хранятся в отдельном регистре. Пользователи захотели видеть их в скопированном документе - это пример решения данной задачи через расширение. Версия 1.0.0.2 31.08.2017 - Версия 1.0.1.1 Платформа 8.3.10.2561 БП 3.0.51.27 Изменен режим совместимости до 8.3.8, изменено сохранение адреса в реализации услуг по переработке - сохраняется изменённый в форме документа адрес. 13.09.2017 - Версия 1.0.1.2 Платформа 8.3.10.2561 БП 3.0.52.32 Изменен режим совместимости до Не использовать

Пример копирования  дополнительных сведений документа.

 

Возникла задачка: в документе используются дополнительные сведения (далее ДС). Например, «Адрес доставки» для документа «Реализация услуг переработки» (в принципе, без  разницы, какой документ или справочник и какие ДС  к нему привязаны). Пользователи стали жаловаться, что при копировании документа (по F9 или мышкой)  ДС  не копируются, а очень хотелось – ну лениво им один и тот же адрес руками набивать…

Подписка на событие не катит (проверил) – для записи ДС нужна ссылка на документ, а её- таки и нету. Если записать в событии подписки ПриКопировании , пользователю открывается новый (не записанный) документ, плюс есть ещё один, в котором ДС привязаны, вот только трудно объяснять пользователю, что «скопировал»… «закрой»… «открой тот, что рядом», не айс, короче…..

Придумался вот такой вариант – берём документ (его форму)  в  расширение, добавляем реквизит формы (в примере «_ДопСведения» произвольного типа), куда будем сохранять  ДС  копируемого документа, и, после записи документа, записываем из этого реквизита запомненные в нём ДС (ссылка уже есть).

Есть один момент – ДС в расширении можно вывести на форму документа, а можно не выводить, но с ним работать при копировании.

В примере ДС «Адрес  доставки»  на форму выведен ,а  ДС «Номер заказа» нет.

В модуле формы паровозом случились ещё несколько мелких примеров:

  1. Выбор адреса из классификатора в добавленном реквизите формы;
  2. Создание дополнительных сведений для документа в Плане видов характеристик;
  3. Чтение ДС средствами БСП;
  4. Запись ДС средствами БСП.

Платформа 8.3.8.1747 конфигурация БП 3.0.43.236.

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

Наименование Файл Версия Размер
Копирование ДС v 1.0.1.2
.cfe 68,99Kb
13.09.17
1
.cfe 1.0.1.2 68,99Kb 1 Скачать
Копирование ДС v 1.0.1.1
.cfe 69,03Kb
13.09.17
0
.cfe 1.0.1.1 69,03Kb Скачать
Копирование ДС v 1.0.0.2
.cfe 68,95Kb
13.09.17
11
.cfe 1.0.0.2 68,95Kb 11 Скачать

См. также

Комментарии
1. Дмитрий Веточкин (MiniMuk) 8 25.10.16 13:02 Сейчас в теме
Добрый день уважаемый, а вот про этот момент "Есть один момент – ДС в расширении можно вывести на форму документа, а можно не выводить, но с ним работать при копировании." можно поподробнее?
2. Алексей Ермилов (Alex_E) 1603 25.10.16 13:34 Сейчас в теме
(1) MiniMuk, первый скришот про это
3. Наталья Наталья (nata_87) 35 31.08.17 10:05 Сейчас в теме
не предусмотрено изменение данных т.е. если я скопирую с предыдущего документа, а в новом изменю что то, то при записи опять подтянет данные с копируемого документа
4. Алексей Ермилов (Alex_E) 1603 31.08.17 10:23 Сейчас в теме
(3) Вы наверное не понял смысл: если мы копируем документ, то в момент именно копирования для нового (скопированного) документа создаются точно такие же, как для исходного, дополнительные сведения. Дальнейшие изменения, записи и пр., на записи дополнительных сведений не повлияют (если конечно не их изменяем). Дополнительные сведения - это записи отдельного регистра, и запись документа не приведет ни к какому "подтягиванию"...
5. Наталья Наталья (nata_87) 35 31.08.17 12:48 Сейчас в теме
Я поняла смысл, просто получается что эти поля, в частности Адрес во всех докмуентах будет одинаковый, т.е. если в каком то докмуенте нужно будет перебить адрес, то при записи документа он опять вернется на тот который был в копируемом докмуенте
6. Алексей Ермилов (Alex_E) 1603 31.08.17 13:06 Сейчас в теме
(5) НЕТ, Вы не поняли. Если вы поменяете адрес и будете ПЕРЕЗАПИСЫВАТЬ документ, дополнительные сведения документам не изменятся. Дополнительные сведения к новому документу записываются при КОПИРОВАНИИ, и ТОЛЬКО ПРИ КОПИРОВАНИИ, потом они ведут себя точно так же, как если были бы занесены вручную - нет никакой зависимости от исходного документа, точно так же как не зависят изменённые реквизиты самого документа, созданного копированием.

Подытожим - дополнительные сведения автоматически записываются для создаваемого документа путём копирования дополнительных сведений исходного документа. Никакой связи между ними нет, при перезаписи скопированного документа дополнительные сведения не перезаписываются.
7. Алексей Ермилов (Alex_E) 1603 31.08.17 13:10 Сейчас в теме
Может быть так будет понятнее: для каждого документа создаются свои записи в регистре сведений. При копировании адреса из дополнительных сведений источника к новому документу будет создана новая запись с точно таким же адресом. Потом его можно поменять. Запись (перезапись) документа никак не повлияет на запись дополнительных сведений в регистре.
8. Наталья Наталья (nata_87) 35 31.08.17 13:15 Сейчас в теме
(7) странно... так как я скачала Ваше расширение, копирую документ он подтягивает данные с копируеммой ссылки, после чего захожу в доп. сведения и меняю там значение, сохраняю документ, возвращаюсь в доп. сведения и там опять значения те которые были при копировании...
10. Алексей Ермилов (Alex_E) 1603 31.08.17 13:59 Сейчас в теме
(8) Вообще для изменения дополнительных сведений сохранять документ нет необходимости, а вот доп. сведения для сохранения изменений, записать необходимо. Вообще ситуация с перезапись доп.сведений при записи документа невозможна по причине отсутствия данных в этом документе, документ копирования не хранится в новом документе, откуда же возьмутся доп.сведения? Мне кажется Вы их просто не сохраняете...ещё раз - давайте вместе посмотрим
11. Наталья Наталья (nata_87) 35 31.08.17 14:09 Сейчас в теме
(10) Смотрите,
1. копирую документ, открывается форма создаваемого нового дока, на ней выбираю записать, после чего перехожу в доп. сведения - там значения ровны с копируемого документа.
2. Меняю в доп. сведениях значения на новые, нажимаю кнопку Записать на форме доп. сведений и документ провожу и закрываю.
3. Открываю заново документ, и доп. сведения в нем опять те которые были в документе который копировали.
4. Но если я скопирую документ запишу и закрою его, а дополнительные сведения открою не из формы а данного документа, а в списке документов выделю нужный и изменю их, то они в таком случаи сохраняться.
12. Алексей Ермилов (Alex_E) 1603 31.08.17 14:12 Сейчас в теме
(11) Если Вы не закрываете документ после изменения доп. сведений, возможно вы не видите изменений, потому что на форме они не обновились, ещё раз предлагаю посмотреть вместе, если что-то работает не так, как задумывалось - я должен это увидеть... Клиент, заказавший эту настройку, работает с ней уже давно - нареканий не было. Возможно, что-то можно поменять.
13. Наталья Наталья (nata_87) 35 31.08.17 14:15 Сейчас в теме
(12) Документ закрываю, после чего вхожу в него и вижу что данные возвращаются те которые были до изменний
14. Наталья Наталья (nata_87) 35 01.09.17 09:41 Сейчас в теме
9. Алексей Ермилов (Alex_E) 1603 31.08.17 13:55 Сейчас в теме
Напишите в личку, давайте посмотрим вместе через АА
Оставьте свое сообщение