Некоторые картинки не загружаются из РФ и РК, используйте VPN.

воскресенье, 31 января 2021 г.

1СОшибка ИзменениеИКонтроль Текст модуля для метода изменился

Очень забавная ошибка, т.к. при сохранении конфигурации система о ней не оповещает.

Поэтому, перед тем как применять измененную конфигурацию расширения с использованием аннотации ИзменениеИКонтроль нужно выполнить проверку применения:

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




Оригинал содержит один символ перевода строки

Как я хотел сделать и получил в итоге ошибку

А вот как правильно вставлять

ПыСы

В этом примере в процедуре нужны были изменения в середине, поэтому вопросы почему я не использовал ВызыватьПосле прошу не задавать.


UP 11/2022

Случайно увидел ссылки на эту страницу на инфостарте и мисте, поэтому решил еще кое-что добавить

Ввиду наличия расширений часто изменяющихся модулей (НДС и прочие) приходится часто искать различия между оригинальными модулями и измененными, по началу юзал два окна в конфигураторе, но там не все видно, теперь для этого я использую Notepad++ с плагином сравнения

Установка плагина:

После чего создаем два пустых файла, в один кидаем оригинал, во второй измененный, Ctrl+Shift+C и он выведет сравнение с подсветкой. Я обычно развожу сам по областям два файла:




Собственно вот так выглядит:


Поправили в нашем коде, нажали Ctrl+Shift+C и проверяем дальше

Запись видео, без звука и пояснений, просто пример сравнения.
Сразу отмечу, я пользуюсь горячими клавишами:

Ctrl+Shift+C - notepad++ сравнить
Ctrl+Shift+X - notepad++ отменить сравнение
Ctrl++ - 1С свернуть блок (функция/процедура)
Ctrl+- -  1С развернуть блок (функция/процедура)
Ctrl+Shift+↓ - выделение, при свернутом блоке функции/процедуры позволяет быстро выделить весь блок


UP 06/04/2024

Сегодня столкнулся с интересным поведением "Проверка возможности применения всех расширений"  (платформа 8.3.22.2411, релиз БП 3.0.150.33). При первичной проверке вывалилась вот такая ошибка

AC_Комиссия_исп Документ РеализацияТоваровУслуг Не найден метод "ТоварыУслугиКРеализацииПоСчету", указанный в аннотации метода "AC_ком_ТоварыУслугиКРеализацииПоСчету".
После исправления других ошибок повторная проверка сказала "Ошибок не обнаружено". Я проверил вручную и действительно, указанной функции больше нет в том расположении!

Оказывается в этом релизе функция ТоварыУслугиКРеализацииПоСчету из МодульМенеджера РеализацияТоваровУслуг переехала в СчетНаОплатуПокупателю, нашелся банальным поиском

9 комментариев:

  1. Не получается в общем модуле, я уже как только не менял местами. А в модуле формы все ОК. Обновил платформу с 8.3.18 на 8.3.19 На 8.3.18 все отлично работает.

    ОтветитьУдалить
    Ответы
    1. Может баг новой платформы?, я использую не выше 8.3.18.1741

      Удалить
  2. Подозреваю, что статья может быть полезной, но к сожалению все 3 первых картинки отсутствуют. Прошу автора перезалить их на приличный хостинг.

    ОтветитьУдалить
    Ответы
    1. Попробуйте через ВПН, в некоторых других странах работают картинки

      Удалить
  3. Здравия! Я думаю, что этот нюанс связан не только с пустыми строками, но и с комментариями.
    Например, такое выдаёт аналогичную ошибку:
    ////
    // 1С:Маркер1
    //
    #Вставка
    Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.ДокументПоступления)
    Тогда
    СтруктураДанные.Вставить("ДокументПоступления", СтрокаТабличнойЧасти.ДокументПоступления);
    КонецЕсли;
    #КонецВставки
    //
    // 1С:Маркер1
    ////

    ОтветитьУдалить
    Ответы
    1. Вы неправильно используете функционал. все изменения должны быть обернуты в
      #Вставка
      #КонецВставки

      Даже комментарии

      Удалить
    2. И я же об этом. Другими словами - всё, что изменяете, должно обёрнуто.

      Удалить