Здравствуйте.
Начну с начала. Была платформа УТ10.3 (10.3.12.3) на конф. 8.1 со множеством доработок. Стали обновлять на 8.3 и УТ(10.3.52.2). Обновили всё нормально, без ошибок и пр.
Стали возвращать доработки которые нужны. Одна из них заключается в следующем:
В документе Реализация товаров и услуг, после создания документа при выборе Номенклатуры в раскрывающемся списке показан остаток товара на складе. Скриншот 1.
Выяснил, что доработка написана в Справочнике Номенклатура в ФормеВыбора. Код для неё следующий:

```1c
    Перем ЗапросОстатки;

    Процедура ПриОткрытии()

    ЗапросОстатки = Новый Запрос;
    //ЗапросОстатки.Текст =
    //"ВЫБРАТЬ
    //| Рег.Номенклатура,
    //| Рег.КоличествоОстаток
    //|ИЗ
    //| РегистрНакопления.ТоварыНаСкладах.Остатки(
    //| ,
    //| Номенклатура В (&Номенклатура)) КАК Рег";
    ЗапросОстатки.Текст =
    "ВЫБРАТЬ
    | ТоварыНаСкладахОстатки.Номенклатура,
    | ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК ОстатокВРезервеНаСкладе,
    | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК ОстатокНаСкладе,
    | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК СвободныйОстаток
    |ПОМЕСТИТЬ ВТ_СвободныеОстатки
    |ИЗ
    | РегистрНакопления.ТоварыНаСкладах.Остатки(
    | ,
    | Номенклатура В (&Номенклатура)
    | И Склад = &Склад) КАК ТоварыНаСкладахОстатки
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
    | ,
    | Номенклатура В (&Номенклатура)
    | И Склад = &Склад) КАК ТоварыВРезервеНаСкладахОстатки
    | ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
    | И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Рег.Номенклатура,
    | Рег.КоличествоОстаток КАК КоличествоОстаток,
    | ЕСТЬNULL(ВТ_СвободныеОстатки.ОстатокВРезервеНаСкладе, 0) КАК РезервОстаток,
    | ЕСТЬNULL(ВТ_СвободныеОстатки.ОстатокНаСкладе, 0) КАК ОстатокНаСкладе,
    | ЕСТЬNULL(ВТ_СвободныеОстатки.СвободныйОстаток, 0) КАК СвободныйОстаток
    |ИЗ
    | РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В (&Номенклатура)) КАК Рег
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК ВТ_СвободныеОстатки
    | ПО Рег.Номенклатура = ВТ_СвободныеОстатки.Номенклатура";
    (...)

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

    ЗапросОстатки.УстановитьПараметр("Номенклатура", МассивНоменклатуры);
    ЗапросОстатки.УстановитьПараметр("Склад", Константы.Новая_ОсновнойСклад.Получить());
    тзОстатки = ЗапросОстатки.Выполнить().Выгрузить();

    Для Каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл
    Если НЕ ОформлениеСтроки.ДанныеСтроки.ЭтоГруппа Тогда
    СтрТЗ = тзОстатки.Найти(ОформлениеСтроки.ДанныеСтроки.Ссылка, "Номенклатура");
    Если СтрТЗ <> Неопределено Тогда
    ОформлениеСтроки.Ячейки.Остаток.УстановитьТекст(СтрТЗ.КоличествоОстаток);
    ОформлениеСтроки.Ячейки.СвободныйОстаток.УстановитьТекст(СтрТЗ.СвободныйОстаток);
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры
```

Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) была добавлена руками.
Константы.Новая_ОсновнойСклад так же добавлена руками и также в обновленной базе есть.
Также были добавлены поля на форму.

Теперь смотрю отладчиком в старой версии. Ставлю ТочкуОстанова на процедуре Справочник... Она срабатывает, всё хорошо.
В новой версии ТочкаОстанова не срабатывает, значит при открытии списка номенклатуры сюда он и не заходит. Есть идеи почему такое может быть?
---
Упс. Это же ОФ.

```1c
    ЭлементыФормы.СправочникСписок.УстановитьДействие("ПриПолученииДанных",Новый Действие("СправочникСписокПриПолученииДанных"));
```
---
Обработчик события к событию не привязан скорее всего.
---
В новой версии ТочкаОстанова не срабатывает, значит при открытии списка номенклатуры сюда он и не заходит. Есть идеи почему такое может быть?
На форме посмотри какие подключены обработчики.(свойства формы)
У тебя в коде есть обработчик, а из формы нет ссылки на него.
---
не могли бы пожалуйста поточнее описать, где посомтреть? Через ПКМ на форме выбора нет ничего похожего.
---
К чему у вас должен быть привязан код процедуры?
Открывайте форму Справочника. Если нужно привязать к реквизиту - смотрите у него свойства.
СправочникСписокПриПолученииДанных

Если это список, выделите на форме список и смотрите у него свойства - обработчики (ПриПолученииДанных)
---
Так надо Выбрать обработчик ПриПолученииДанных ручками или программно прописать
В УФ это было бы так

```1c
    Элементы.СправочникСписок.УстановитьДействие("ПриПолученииДанных","СправочникСписокПриПолученииДанных");
```

В обычных наверное

```1c
    ЭлементыФормы.СправочникСписок.УстановитьДействие("ПриПолученииДанных","СправочникСписокПриПолученииДанных");
```
---
Ну а так, чтобы не было проблем с обновлением, лучше все делать программно

```1c
    Процедура ПриОткрытии()
    // Вставить содержимое обработчика.
    КонецПроцедуры
    Процедура мояПриОткрытии()
    ПриОткрытии();
    ЭлементыФормы.СправочникСписок.УстановитьДействие("ПриПолученииДанных","СправочникСписокПриПолученииДанных");
    КонецПроцедуры
    УстановитьДействие("ПриОткрытии","мояПриОткрытии");
```
---
Немного не понятен код. Где прописывать "УстановитьДействие"?
---
В (8) Пример кода подмены ПриОткрытии своей процедурой. Вызывается моя, из нее штатная.
Это просто приём такой, чтобы штатные процедуры не курочить или их нет
А установить действие Вы можете прописать и в ПриОткрытии
---
все равно не понятно как это сделать. Просто в 1С работаю только 2 месяца, до этого с программированием вообще не сталкивался
---
Поставил "установить действие" в самом конце программного кода, вылезла такая ошибка:

```1c
    {ОбщийМодуль.ОбработкаТабличныхЧастей.Модуль(46)}: Ошибка при вызове метода контекста (ПолучитьФормуВыбора)
    ФормаСправочника = Справочники.Номенклатура.ПолучитьФормуВыбора();
    по причине:
    Ошибка инициализации модуля: Справочник.Номенклатура.Форма.ФормаВыбора.Форма
    по причине:
    {Справочник.Номенклатура.Форма.ФормаВыбора.Форма(944)}: Ошибка при вызове метода контекста (УстановитьДействие)
    ФормаСправочника = Справочники.Номенклатура.ПолучитьФормуВыбора();
    по причине:
    Несоответствие типов (параметр номер '2')
```
---
Упс. Это же ОФ.

```1c
    ЭлементыФормы.СправочникСписок.УстановитьДействие("ПриПолученииДанных",Новый Действие("СправочникСписокПриПолученииДанных"));
```
---
я не понял как, но Вы это сделали! Огромное Спасибо!
---
В новой версии ТочкаОстанова не срабатывает, значит при открытии списка номенклатуры сюда он и не заходит.

Странно делать вывод о том, что код не выполняется потому что мы не можем попасть в отладке на точку.

первой строкой в
СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
напишите
Сообщить("ла ла ла жу жу жу");
Если сообщения не будет, то можно дальше копаться в этом ребусе
---
В обычных формах в клиент-сервере даже при выключенной в реестре отладке оно остановится, если исполнение туда заходит.
---
Если просто скопировали, то к событию при открытии не привязалось, нужно через кнопку "Процедуры и функции (Ctrl+Alt+P)" перевыбрать.
---
Не могли поподробнее описать? Через эту привязку клавиш я просто перехожу к какой либо процедуре.
---
Просто по кнопке перевыбрать процедуру при открытии и она привяжется к событию.