gifts2017

Групповое изменение реквизитов договоров

Опубликовал Игорь Гречкин (Grekk) в раздел Обработки - Обработка справочников

Групповое изменение реквизитов договоров для УТ 10.3.12.3

Возможно отбирать и изменять реквизиты:

  • ВидДоговора
  • ВедениеВзаиморасчетов
  • ВестиПоДокументамРасчетовСКонтрагентом

Не составит труда добавить другие реквизиты. В моем случае необходимость была только в перечисленных.

Отличия от подобных обработок:

  1. В других обработках создается ситуация когда не выполняется условие "Если НЕ ОбменДанными.Загрузка Тогда". В этой формируется запрос ко всем регистрам сведений и регистрам накопления, где присутствует измерение с типом значения "СправочникСсылка.ДоговорыКонтрагентов", который получает список всех документов, которые могут помешать изменению реквизитов договоров. Затем отмена проведения документов, изменение реквизитов договоров и проведение документов.
  2. Возможность изменить не один договор, а список который можно заполнить подбором или автоматически по определенным условиям.

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

Наименование Файл Версия Размер Кол. Скачив.
Изменение реквизитов договоров
.epf 10,69Kb
11.09.15
10
.epf 10,69Kb 10 Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. Артём Алтухов (Fannasankh) 29.07.14 09:23
Перепроводить очень старые документы часто плохо заканчивается
2. Игорь Гречкин (Grekk) 29.07.14 09:44
(1) Fannasankh,
да если никогда не восстанавливались последовательности или внесены изменения в процедуру ОбработкаПроведения
3. юрий гулидов (gull22) 30.07.14 08:39
На этапе внедрения может пригодиться, когда есть возможность "поиграть" вариантами.
4. Марина Семёнова (SemenovaMarinaV) 30.07.14 08:42
Так есть же стандратная обрабока. Зачем изобретать велосипед?
5. Игорь Гречкин (Grekk) 30.07.14 11:44
(4) SemenovaMarinaV,
чет я протупил, как называется?
6. Степашка Никулин (Styvi) 30.07.14 11:45
(4) SemenovaMarinaV, согласен, что стандартная обработка поменяет реквизиты договоров... но автор обещает ещё и правильную обработку базы после этих изменений...

На этапе внедрения может пригодиться, когда есть возможность "поиграть" вариантами.

на этапе внедрения обычно времени мало для таких игр :)
7. Марина Семёнова (SemenovaMarinaV) 30.07.14 14:18
А если нет... Лучше буду использовать стандартную
8. Кирилл Панфилов (PanKir) 10.09.15 15:00
Обработка хорошая, но для кроссплатформности (в плане различных конфигураций) есть одно замечание:
не все регистры сведений имеют периодичность, чтобы использовать "СрезПоследних" - использовал в ЛВЗ (ликероводочный), там есть один такой регистр. Мне повезло, он был пустой, я просто его исключил из запроса.

второе замечание - если отбор договоров получать не по всем предоставленным фильтрам обработки, то ясное дело что и не все соответствующие реквизиты требуют изменения. В связи с этим я предлагаю немного подправить обработку:

Процедура ИзменитьЗначенияРеквизитовДоговоров(Элемент)
Для Каждого ВыборкаДоговор Из СписокДоговоров Цикл
ТекДоговор = ВыборкаДоговор.Значение.ПолучитьОбъект();
ТекДоговор.ВидДоговора = ?(НовыйВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.ПустаяСсылка(), ТекДоговор.ВидДоговора, НовыйВидДоговора);
ТекДоговор.ВедениеВзаиморасчетов = ?(НовыйВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПустаяСсылка(), ТекДоговор.ВедениеВзаиморасчетов, НовыйВедениеВзаиморасчетов);

ТекДоговор.ВестиПоДокументамРасчетовСКонтрагентом = НовыйВестиПоДокументамРасчетовСКонтрагентом;
Сообщить("Запись договора " + ТекДоговор.Код + " Контрагента - " + ТекДоговор.Владелец);
ТекДоговор.Записать();
КонецЦикла;
КонецПроцедуры


(Прошу прощения, что не разукрашено, нет возможности)
В двух словах - если новое значение реквизита заполнено, то меняем, иначе - ничего не делаем.
9. Игорь Гречкин (Grekk) 11.09.15 12:11
(8) PanKir, Спасибо. Второе замечание учел, обработку обновил.
Также строку
ТекДоговор.ВестиПоДокументамРасчетовСКонтрагентом = НовыйВестиПоДокументамРасчетовСКонтрагентом;

заменил на
ТекДоговор.ВестиПоДокументамРасчетовСКонтрагентом = ?(ИмзменятьПоДокументам, НовыйВестиПоДокументамРасчетовСКонтрагентом, ТекДоговор.ВестиПоДокументамРасчетовСКонтрагентом);

Где ИмзменятьПоДокументам - новый реквизит на форме с типом булево.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа