Здравствуйте. Такая ситуация. Недавно начал изучать сам язык 1с. Прошу помощи, требуется обновить базу БП ред. 3.0 с релиза 3.0.43 на 3.0.44. Ранее в конфигурации использовался режим совместимости с платформой 3.6, в релизе 3.0.44 данную возможность убрали. Платформа 8.3.9.1850. А теперь вопрос:

Имеется доработка "Подбор номенклатуры":

При вызове данной обработки (при нажатии кнопки подбор, например в документе "Реализация товаров и услуг" отображается ошибка :"Параметр с указанным именем не найден". При нажатии кнопки подробно вижу следующее:

```1c
    {Обработка.ПодборНоменклатуры.Форма.Форма.Форма(839)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра)
    СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("СчетаЗапасов", СписокСчетов);
    по причине:
    Параметр с указанным именем не найден
```

Высылаю текст запроса, где возникает ошибка с параметром. Помогите пожалуйста.

```1c
    &НаСервере
    Процедура НастроитьСписок()

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(
    СписокНоменклатуры,
    "Услуга",
    Услуги,
    ТипЗнч(Услуги) = Тип("Булево"));

    ДатаОстаткиЦены = ?(НЕ ЗначениеЗаполнено(ДатаРасчетов), ПолучитьДатуОстатковПоУмолчанию(), ДатаРасчетов);

    СписокНоменклатуры.ТекстЗапроса = ТекстЗапросаДинамическогоСписка(ПоказыватьЦены, ПоказыватьОстатки);

    // Отображение цен

    Элементы.СписокНоменклатурыЦена.Видимость = ПоказыватьЦены;
    Элементы.СписокНоменклатурыВалюта.Видимость = ПоказыватьЦены;

    Если ПоказыватьЦены Тогда

    Если ВРег(ВидПодбора) = "НТТ" Тогда
    ТипЦенЗапроса = Склад.ТипЦенРозничнойТорговли;
    Иначе
    ТипЦенЗапроса = ТипЦен;
    КонецЕсли;

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(
    СписокНоменклатуры,
    "ТипЦен",
    ТипЦенЗапроса,
    ЗначениеЗаполнено(ТипЦенЗапроса));

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(
    СписокНоменклатуры,
    "ВалютаЦены",
    ВалютаЦены,
    ЗначениеЗаполнено(ВалютаЦены));

    СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("ДатаОстаткиЦены", ДатаОстаткиЦены);

    КонецЕсли;

    // Отображение остатков на складе

    Элементы.СписокНоменклатурыКоличествоОстаток.Видимость = ПоказыватьОстатки;

    Если ПоказыватьОстатки Тогда

    СписокДоступныхОрганизаций = ОбщегоНазначенияБПВызовСервераПовтИсп.ВсеОрганизацииДанныеКоторыхДоступныПоRLS(Ложь);

    Если НЕ ЗначениеЗаполнено(Организация) Тогда

    СписокОрганизаций = СписокДоступныхОрганизаций;

    ИначеЕсли СписокДоступныхОрганизаций.Найти(Организация) <> Неопределено Тогда

    СписокОрганизаций = Новый Массив;
    СписокОрганизаций.Добавить(Организация);

    Иначе
    СписокОрганизаций = Новый Массив;
    КонецЕсли;

    ВидыСубконто = Новый Массив;
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);

    СписокСчетов = Новый Массив;

    ИспользоватьОтборПоСкладу = Истина;
    ИспользоватьОтборПоСчетуНеГТД = Истина;

    Если ВРег(ВидПодбора) = "КОМИТЕНТ" Тогда

    СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ТоварыНаСкладе);

    Если ЗначениеЗаполнено(Контрагент) Тогда
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии);

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

    КонецЕсли;

    ИначеЕсли ВРег(ВидПодбора) = "КОМИССИОНЕР" Тогда

    ИспользоватьОтборПоСкладу = Ложь;

    СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ТоварыОтгруженные);
    СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ТоварыПереданныеНаКомиссию);

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(
    СписокНоменклатуры,
    "Субконто2",
    Контрагент,
    ЗначениеЗаполнено(Контрагент));

    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);

    ИначеЕсли ВРег(ВидПодбора) = "МАТЕРИАЛЫЗАКАЗЧИКА" Тогда

    СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку);

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(
    СписокНоменклатуры,
    "Субконто2",
    Контрагент,
    ЗначениеЗаполнено(Контрагент));

    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);

    КонецЕсли;

    Если ИспользоватьОтборПоСкладу Тогда
    Если ЗначениеЗаполнено(Склад) И ВедетсяУчетПоСкладам Тогда

    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(
    СписокНоменклатуры,
    "Субконто"+ВидыСубконто.Количество(),
    Склад,
    Истина);

    КонецЕсли;
    КонецЕсли;

    Если ВедетсяУчетПоПодразделелениям Тогда

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(
    СписокНоменклатуры,
    "Подразделение",
    Подразделение,
    Подразделение <> Неопределено);

    КонецЕсли;

    СписокСчетов = ПолучитьСписокСчетов(СписокСчетов, ВидыСубконто, ПоказыватьЗабалансовыеОстатки);

    СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("ВидыСубконто", ВидыСубконто);
    СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("СчетаЗапасов", СписокСчетов);
    СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("СписокОрганизаций", СписокОрганизаций);
    СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("ДатаОстаткиЦены", ДатаОстаткиЦены);

    УстановитьЗначениеПараметраПоказыватьТолькоОстаткиСпискаНоме­нклатуры(ЭтаФорма);

    КонецЕсли;

    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ТекстЗапросаДинамическогоСписка(ПоказыватьЦены, ПоказыватьОстатки)

    ТекстЗапроса = // Текст может быть модифицирован ниже
    "ВЫБРАТЬ
    | СправочникНоменклатура.Ссылка,
    | ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)) КАК Валюта,
    | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    | СправочникНоменклатура.Наименование,
    | СправочникНоменклатура.Артикул,
    | СправочникНоменклатура.ЕдиницаИзмерения,
    | СправочникНоменклатура.Услуга,
    | СправочникНоменклатура.Код,
    | СправочникНоменклатура.НаименованиеПолное,
    | ВЫБОР
    | КОГДА СправочникНоменклатура._Доработка_ВесовойУчет
    | ТОГДА ЕСТЬNULL(_Доработка_УчетВесовойНоменклатурыОстатки.ВесОстаток, 0)
    | КОГДА СправочникНоменклатура._Доработка_ШтучныйУчет
    | ТОГДА ЕСТЬNULL(_Доработка_УчетВесовойНоменклатурыОстатки.КоличествоОстаток, 0)
    | ИНАЧЕ 0
    | КОНЕЦ КАК ГоловыВес
    | ИЗ
    | Справочник.Номенклатура КАК СправочникНоменклатура
    | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&ДатаОстаткиЦены)}, {(Номенклатура).* КАК Ссылка, (ТипЦен) КАК ТипЦен, (Валюта) КАК ВалютаЦены}) КАК ЦеныНоменклатурыСрезПоследних
    | ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
    | И (&ПоказыватьЦены)}
    | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки({(&ДатаОстаткиЦены)}, Счет В (&СписокСчетов), {(&ВидыСубконто)}, Организация В (&СписокОрганизаций) {(Подразделение) КАК Подразделение, (ВЫРАЗИТЬ(Субконто1 КАК Справочник.Номенклатура)).* КАК Ссылка, (Субконто2)}) КАК ХозрасчетныйОстатки
    | ПО СправочникНоменклатура.Ссылка = ХозрасчетныйОстатки.Субконто1}
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления._Доработка_УчетВесовойНоменклатуры.Остатки КАК _Доработка_УчетВесовойНоменклатурыОстатки
    | ПО СправочникНоменклатура.Ссылка = _Доработка_УчетВесовойНоменклатурыОстатки.Номенклатура
    | ГДЕ
    | НЕ СправочникНоменклатура.ЭтоГруппа";

    // В версии 8.3.8 с отключенным режимом совместимости информация о видимости колонок не передается динамическому списку.
    // Поэтому запрос динамического списка следует формировать в прикладном коде, в зависимости от того,
    // какие данные должны быть отображены в списке.

    Если ПоказыватьЦены И ПоказыватьОстатки Тогда
    Возврат ТекстЗапроса;
    КонецЕсли;

    СхемаЗапроса = Новый СхемаЗапроса;

    СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);

    ОператорВыбора = СхемаЗапроса.ПакетЗапросов[0].Операторы[0];

    Если Не ПоказыватьОстатки Тогда
    ОператорВыбора.Источники.Удалить("ОстаткиНаСкладе"); // одновременно будет удалено поле КоличествоОстаток
    КонецЕсли;

    Если Не ПоказыватьЦены Тогда
    ОператорВыбора.Источники.Удалить("ЦеныНоменклатуры"); // одновременно будут удалены поля Валюта и Цена
    КонецЕсли;

    Возврат СхемаЗапроса.ПолучитьТекстЗапроса();

    КонецФункции
```
---
```1c
    ТекстЗапроса = // Текст может быть модифицирован ниже
    "ВЫБРАТЬ
    | СправочникНоменклатура.Ссылка,
    | ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)) КАК Валюта,
    | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    | СправочникНоменклатура.Наименование,
    | СправочникНоменклатура.Артикул,
    | СправочникНоменклатура.ЕдиницаИзмерения,
    | СправочникНоменклатура.Услуга,
    | СправочникНоменклатура.Код,
    | СправочникНоменклатура.НаименованиеПолное,
    | ВЫБОР
    | КОГДА СправочникНоменклатура._Доработка_ВесовойУчет
    | ТОГДА ЕСТЬNULL(_Доработка_УчетВесовойНоменклатурыОстатки.ВесОстаток, 0)
    | КОГДА СправочникНоменклатура._Доработка_ШтучныйУчет
    | ТОГДА ЕСТЬNULL(_Доработка_УчетВесовойНоменклатурыОстатки.КоличествоОстаток, 0)
    | ИНАЧЕ 0
    | КОНЕЦ КАК ГоловыВес
    | ИЗ
    | Справочник.Номенклатура КАК СправочникНоменклатура
    | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&ДатаОстаткиЦены)}, {(Номенклатура).* КАК Ссылка, (ТипЦен) КАК ТипЦен, (Валюта) КАК ВалютаЦены}) КАК ЦеныНоменклатурыСрезПоследних
    | ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
    | И (&ПоказыватьЦены)}
    | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки({(&ДатаОстаткиЦены)}, Счет В (&СписокСчетов), {(&ВидыСубконто)}, Организация В (&СписокОрганизаций) {(Подразделение) КАК Подразделение, (ВЫРАЗИТЬ(Субконто1 КАК Справочник.Номенклатура)).* КАК Ссылка, (Субконто2)}) КАК ХозрасчетныйОстатки
    | ПО СправочникНоменклатура.Ссылка = ХозрасчетныйОстатки.Субконто1}
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления._Доработка_УчетВесовойНоменклатуры.Остатки КАК _Доработка_УчетВесовойНоменклатурыОстатки
    | ПО СправочникНоменклатура.Ссылка = _Доработка_УчетВесовойНоменклатурыОстатки.Номенклатура
    | ГДЕ
    | НЕ СправочникНоменклатура.ЭтоГруппа";
```

{Обработка.ПодборНоменклатуры.Форма.Форма.Форма(839)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра)
        СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("СчетаЗапасов", СписокСчетов);
по причине:
Параметр с указанным именем не найден

Что-то я не вижу, в вашем запросе, параметра "СчетаЗапасов".... потому и ошибка лезет
Зато в запросе есть параметр "СписокСчетов".
Попробуйте в строке

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

сделать

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

З.Ы.
Я думаю проблема не в платформе, а в обновлении. Раз там допилено у вас было, вот оно и не срослось с изменениями в релизе типовой конфы. Анализируй код.
---
Не нужно никакие режимы совместимости переключать, просто обновите платформу до упора и проблема исчезнет.Сталкивался с этим в этой же форме подбора.
---
вчера дома тестил на последнем релизе 8.3.9 результат тот же.
---
Кэш прибивал, специальной обработкой служебные регистры обновлял?
---
Кэш чистил, какой обработкой обновить служебные регистры?
---
скажите какую вы поставили? какой именно релиз?
---
```1c
    ТекстЗапроса = // Текст может быть модифицирован ниже
    "ВЫБРАТЬ
    | СправочникНоменклатура.Ссылка,
    | ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)) КАК Валюта,
    | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    | СправочникНоменклатура.Наименование,
    | СправочникНоменклатура.Артикул,
    | СправочникНоменклатура.ЕдиницаИзмерения,
    | СправочникНоменклатура.Услуга,
    | СправочникНоменклатура.Код,
    | СправочникНоменклатура.НаименованиеПолное,
    | ВЫБОР
    | КОГДА СправочникНоменклатура._Доработка_ВесовойУчет
    | ТОГДА ЕСТЬNULL(_Доработка_УчетВесовойНоменклатурыОстатки.ВесОстаток, 0)
    | КОГДА СправочникНоменклатура._Доработка_ШтучныйУчет
    | ТОГДА ЕСТЬNULL(_Доработка_УчетВесовойНоменклатурыОстатки.КоличествоОстаток, 0)
    | ИНАЧЕ 0
    | КОНЕЦ КАК ГоловыВес
    | ИЗ
    | Справочник.Номенклатура КАК СправочникНоменклатура
    | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&ДатаОстаткиЦены)}, {(Номенклатура).* КАК Ссылка, (ТипЦен) КАК ТипЦен, (Валюта) КАК ВалютаЦены}) КАК ЦеныНоменклатурыСрезПоследних
    | ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
    | И (&ПоказыватьЦены)}
    | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки({(&ДатаОстаткиЦены)}, Счет В (&СписокСчетов), {(&ВидыСубконто)}, Организация В (&СписокОрганизаций) {(Подразделение) КАК Подразделение, (ВЫРАЗИТЬ(Субконто1 КАК Справочник.Номенклатура)).* КАК Ссылка, (Субконто2)}) КАК ХозрасчетныйОстатки
    | ПО СправочникНоменклатура.Ссылка = ХозрасчетныйОстатки.Субконто1}
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления._Доработка_УчетВесовойНоменклатуры.Остатки КАК _Доработка_УчетВесовойНоменклатурыОстатки
    | ПО СправочникНоменклатура.Ссылка = _Доработка_УчетВесовойНоменклатурыОстатки.Номенклатура
    | ГДЕ
    | НЕ СправочникНоменклатура.ЭтоГруппа";
```

{Обработка.ПодборНоменклатуры.Форма.Форма.Форма(839)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра)
        СписокНоменклатуры.Параметры.УстановитьЗначениеПараметра("СчетаЗапасов", СписокСчетов);
по причине:
Параметр с указанным именем не найден

Что-то я не вижу, в вашем запросе, параметра "СчетаЗапасов".... потому и ошибка лезет
Зато в запросе есть параметр "СписокСчетов".
Попробуйте в строке

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

сделать

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

З.Ы.
Я думаю проблема не в платформе, а в обновлении. Раз там допилено у вас было, вот оно и не срослось с изменениями в релизе типовой конфы. Анализируй код.
---
блин вот я косяк...тяжело даются пока такие большие объёмы кода...спасибо что подсказали. я все понял и разобрался. так и знал что где-то какая-то мелочь) спасибо)