Добрый вечер, всем!
Ругается на эти процедуры.
Ошибка появилась только сегодня. Вчера ошибок не было.
17 раз вызывается запись, хотя в запросе результат ТЗ всего 7 позиций.
Что не так, подскажите мудрым советом.
Спасибо!

```1c
    Функция НоменклатураГНК(СТ_ЗапретитьВыгрузкуНаWebSite_ru = Ложь, ВидНоменклатуры = Неопределено)

    Запрос = Новый Запрос;

    Запрос.УстановитьПараметр("БИТ_СТ_ГруппаНомеклатурыВКаталоге", Ссылка);
    Запрос.УстановитьПараметр("СТ_ЗапретитьВыгрузкуНаWebSite_ru", СТ_ЗапретитьВыгрузкуНаWebSite_ru);
    Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);

    Запрос.Текст =
    "ВЫБРАТЬ
    | СпрНоменклатура.Ссылка КАК Номенклатура
    |ИЗ
    | Справочник.Номенклатура КАК СпрНоменклатура
    |ГДЕ
    | СпрНоменклатура.БИТ_СТ_ГруппаНомеклатурыВКаталоге = &БИТ_СТ_ГруппаНомеклатурыВКаталоге
    | И НЕ СпрНоменклатура.ЭтоГруппа
    | И СпрНоменклатура.СТ_ЗапретитьВыгрузкуНаWebSite_ru = &СТ_ЗапретитьВыгрузкуНаWebSite_ru
    | И СпрНоменклатура.ВидНоменклатуры В(&ВидНоменклатуры)
    | И СпрНоменклатура.ПометкаУдаления = ЛОЖЬ";

    Таблица = Запрос.Выполнить().Выгрузить();
    Массив = Таблица.ВыгрузитьКолонку("Номенклатура");

    Возврат Массив;

    КонецФункции
```

```1c
    Процедура ПерезаписатьНоменклатуруЗапретитьВыгрузкуНаWebSite();

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

    МассивНК_ = НоменклатураГНК(Истина, ВидыНК);

    Для Каждого ЭлементНК ИЗ МассивНК_ Цикл
    Попытка

    ТекущийОбъект = ЭлементНК.ПолучитьОбъект();
    ТекущийОбъект.Записать();

    Исключение

    ОбщегоНазначения.СообщитьОбОшибке("Не удалось перезаписать номенклатуру: " + ТекущийОбъект.Наименование + Символы.ПС + ОписаниеОшибки());

    КонецПопытки;
    КонецЦикла;

    КонецПроцедуры
```
---
Смотрите. У нас есть 2 справочника, у которых некоторые реквизиты не равны. Например ВыгружатьСайт_ru <> БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ru
Если мы хотим привести их в соответствие, то надо либо перед записью справочника номенклатуры без условий привести в равенство, либо в код

```1c
    ТекущийОбъект = ЭлементНК.ПолучитьОбъект()
```

Добавить

```1c
    ТекущийОбъект.ДополнительныеСвойства.Вставить("ОбновитьЧегототам", ИСТИНА)
```

и тогда в модуле номенклатуры перед записью дописать

```1c
    Если ДополнительыеСвойства.Свойство("ОбновитьЧеготота") ТОгда
    БИТ_СТ_ВыгрузитьНаWebSite_ru = БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ru
    БИТ_СТ_ДляВыгрузкиНаWebSite_ru = БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ru
    КонецЕсли
```

При этом у нас установятся указанные реквизиты справочника номенклатуры в соответствие с реквизитами БИТ-СТ и цикл разорвется.
---
А откуда это счастье вызывается?
---
из МО Справочника "БИТ_СТ_ГруппыНоменклатурыВКаталоге.
---
Судя по стеку, при записи номенклатуры идет запись справочника БИТ_СТ....
---
все верно из "БИТ_СТ_ГруппыНоменклатурыВКаталоге".

```1c
    Если Не ДополнительныеСвойства.Свойство("СТ_НеОбновлятьСтатус") Тогда

    МассивНоменклатуры = НоменклатураГНК();
    Справочники.СТ_СтатусыНоменклатуры.ОбновитьСтатусыНоменклатуры(МассивНоменклатуры);

    ПерезаписатьНоменклатуруЗапретитьВыгрузкуНаWebSite();

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

Что-то не так именно в самой процедуре ПерезаписатьНоменклатуруЗапретитьВыгрузкуНаWebSite();
Меня смущает запись в цикле
---
А что в модуле номенклатуры, откуда идет вызов записи БИ_СТ? Тут идет зацикливание, надо понять почему. Зачем вызывается простая запись справочника Номенклатуры?
---
ИЗ МО справ-ка Номенклатуры идет вызов

```1c
    Если ЗначениеЗаполнено(БИТ_СТ_ГруппаНомеклатурыВКаталоге) Тогда

    ВыгружатьСайт_ru = БИТ_СТ_ВыгрузитьНаWebSite_ru и БИТ_СТ_ДляВыгрузкиНаWebSite_ru;
    ВыгружатьСайт_en = БИТ_СТ_ВыгрузитьНаWebSite_en и БИТ_СТ_ДляВыгрузкиНаWebSite_en;

    ВыгружатьСайт_de = БИТ_СТ_ВыгрузитьНаWebSite_de и БИТ_СТ_ДляВыгрузкиНаWebSite_de;
    ВыгружатьСайт_ua = БИТ_СТ_ВыгрузитьНаWebSite_ua и БИТ_СТ_ДляВыгрузкиНаWebSite_ua;

    Если (ВыгружатьСайт_en <> БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_en)
    или (ВыгружатьСайт_ru <> БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ru)

    или (ВыгружатьСайт_de <> БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_de)
    или (ВыгружатьСайт_ua <> БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ua)

    Тогда
    БИТ_СТ_ГруппаНомеклатурыВКаталогеОбъект = БИТ_СТ_ГруппаНомеклатурыВКаталоге.ПолучитьОбъект();
    БИТ_СТ_ГруппаНомеклатурыВКаталогеОбъект.Записать();
    КонецЕсли;

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

Простая запись делается, чтобы обновить реквизиты формы справ-ка НК.
Изменения данных подвязано с регистром сведений "Статусы НК" и спра-ком "Статусы номенклатуры".
---
Всё равно дичь. Либо Вы не всё показываете:
1. Если надо перезаписать, то надо установить реквизиты. А в приведенном коде они не выставляются. Поэтому и идет зацикливание.
2. Для того, чтобы реквизиты справочника изменились, надо передать доп. параметры. А здесь я этого не вижу. Вот за счет того, что данные не изменяются и идет зацикливание.
---
о каких реквизитах и доп.параметрах вы имеете ввиду?
Приведите пример, чтобы Я смог Вас понять.
Если нужна доп.инфа, то я выложу.
---
Смотрите. У нас есть 2 справочника, у которых некоторые реквизиты не равны. Например ВыгружатьСайт_ru <> БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ru
Если мы хотим привести их в соответствие, то надо либо перед записью справочника номенклатуры без условий привести в равенство, либо в код

```1c
    ТекущийОбъект = ЭлементНК.ПолучитьОбъект()
```

Добавить

```1c
    ТекущийОбъект.ДополнительныеСвойства.Вставить("ОбновитьЧегототам", ИСТИНА)
```

и тогда в модуле номенклатуры перед записью дописать

```1c
    Если ДополнительыеСвойства.Свойство("ОбновитьЧеготота") ТОгда
    БИТ_СТ_ВыгрузитьНаWebSite_ru = БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ru
    БИТ_СТ_ДляВыгрузкиНаWebSite_ru = БИТ_СТ_ГруппаНомеклатурыВКаталоге.БИТ_СТ_ДляВыгрузкиНаWebSite_ru
    КонецЕсли
```

При этом у нас установятся указанные реквизиты справочника номенклатуры в соответствие с реквизитами БИТ-СТ и цикл разорвется.
---
оооо, спасибо. Теперь немного стал догонять)) А ведь можно добавить проверку на доп.свойства.Количество <> 0?
Еще раз спасибо, что Вам не лень было все это расписывать)
---
Вложил файл.
---
Так выглядит стек вызовов.