Занимаюсь обслуживанием РИБа на Рознице 2.3. Все изменения веду в расширениях и столкнулся с ошибкой при обмене - "с другим набором расширений, меняющих структуру данных". До этого сталкивался с подобной ошибкой, но раньше было достаточно "подновить" расширение, и с обменом оно уходило. Начал разбираться...
Для начала я решил попробовать просто поставить пару пробелов в новой команде, и... ноль эффекта. Ошибка та же. Проверяю файл обмена - список расширений есть, а изменений - нет.
Первая мысль - план обмена почему то не фиксирует изменения. Начал "курить" мануалы по плану обмена, по расширениям, нашел замечательную команду "Записать" у глобального свойства конфигурации - "РасширенияКонфигурации", а точнее у элемента. Ноль эффекта. А самое главное - посмотреть, зарегистрированы ли изменения по РИБу, никак, кроме выгрузки сообщения. Также не работает через метод "ЗарегистрироватьИзменения" если передать в качестве аргумента расширение.
Вторая мысль, ну раз так не получается, дай-ка я "перезагружу" расширение. Выгрузил в файл, загрузил конфигурацию в расширение (каюсь, на этом моменте не смотрел файл сообщения, но в распределенные узлы пришло обновление конфигурации (хотя почему конфигурации, когда я только расширение перезагрузил - непонятно). И это обновление валится с ошибкой, и обмен ломается полностью. Важно в этом моменте - сразу отключил автообмен. Помогла только загрузка "ручками" в каждом узле - отвязать, загрузить расширение, привязать, сделать обмен.
Также не давало покоя обстоятельство, что до того, как увидел, что обмен "сломан", половина узлов работала, т.е. изменения отослались. В чем подвох?
Уже измучившись, решил, что придется каждый раз при изменениях повторять процедуру загрузки "ручками" (а очень не хотелось, 20+ узлов, это тупая работа на целый день и, самое главное, на магазины это никак не повесить - слишком муторная процедурка для обычных пользователей, да и в конфигуратор доступ давать не хочется).
Думаю, ну ладно, раз так, давай-ка внесу очередные изменения, и пойду догружать. Изменяю, проверяю, и о ЧУДО! Изменения проходят в файле обмена!
Как оказалось в итоге, с определенного релиза платформы, 1С в РИБ при обмене, перестало отправлять всё расширение при изменениях, а как полноценное обновление отсылает только изменения. Ну как бы и хорошо, почему же не работает? А потому, что новая команда для справочника, по всей видимости, не стоит того, чтобы её отправлять (ну или изменения в этой команде), а вот новая процедура в форме/модуле и/или изменения - стоят! При этом изменения по команде также исправно отправляются (хоть тут слава Богу). В общем, если кто-то мучается, надеюсь, моя инфа поможет.