Принцип работы следующий. Выполняется стандартный запрос 1С. Далее результат запроса обрабатывается функцией, которая изменяет данные в соответствии со следующей логикой:
При обновлении/загрузке справочников/документов:
- В запросе должно быть поле с именем "Ссылка". По нему обработка определяет тип справочника, или документа, в который необходимо внести изменения.
- Если значение поля "Ссылка" равно NULL, создается новый элемент справочника/документа.
- Один запрос изменяет только один справочник/документ.
- Загружаемые поля сопоставляются по наименованиям.
При обновлении/загрузке табличных частей:
- На форме есть дополнительный реквизит "Имя табличной части". Его необходимо указать.
- Должны быть поля "Ссылка" и "НомерСтроки". Значение поля "Ссылка" не должно быть равно NULL.
- Если значение поля "НомерСтроки" равно NULL, создается новая строка, в противном случае изменяется строка с соответствующим номером.
- Один запрос изменяет произвольное количество табличных частей одного типа справочника/документа.
- Загружаемые поля сопоставляются по наименованиям.
Пример 1.
ВЫБРАТЬ Ссылка, "!!!" КАК Комментарий
ИЗ Документ.ПоступлениеНаРасчетныйСчет
ГДЕ Дата МЕЖДУ ДАТАВРЕМЯ(2021, 2, 5) И ДАТАВРЕМЯ(2021, 2, 5, 23, 59, 59)
В результате выполнения этого запроса обработка изменит документы "ПоступлениеНаРасчетныйСчет" за 05.02.2021г., присвоит полю "Комментарий" значение "!!!".
Пример 2.
ВЫБРАТЬ Ссылка, "ВР-"+ПОДСТРОКА(Код,4,15) КАК Код
ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Наименование
Обработка изменит все элементы справочника "Номенклатура", заменит первые 3 символа на "ВР-" (сменит префикс)
Если сообществу будет интересно, доработаю обработку для изменения данных пакетным запросом. Впрочем, почти весь функционал для этого в ней присутствует, т.к. скопипастил его с действующей конфигурации, в которой этот функционал есть.
Данный функционал применяю не один год как в выложенном виде для изменения данных, так и в составе конфигурации в обработках для изменения данных.
Выполнена на управляемых формах. Но не составит труда ее переделать для обычных.
Тестировал на платформе 1С:Предприятие 8.3 (8.3.18.1208).