arefaste/1C_Forums huggingface dataset:
Поступила задача от бизнеса - сделать так чтобы можно было из определенной формы открыть две или более формы нового объекта (документа) параллельно. В текущем решении это сделано криво - в форму передается пустой ID, оно конечно работает, но при открытии формы объекта после записи (если не закрыть "первую" форму) - открывается форма-дубль. Есть ли вариант сделать это правильно, или исправить ошибку существующего решения?
---
Как открываете формы сейчас? Так:

```1c
    ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",,,Новый УникальныйИдентификатор);
    ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",,,Новый УникальныйИдентификатор);
```
---
https://infostart.ru/1c/articles/403189/?ysclid=m74kc0cfg6650849952

Можно реализовать что то похожее, но не откручивать весь массив циклом, а, скажем, сделать "счетчик" в переменной, и добавлять к нему единицу при каждой попытке открыть форму и создании дока на стороне сервера
Саму форму на клиенте получать соответственно из массива по индексу равному этому счетчику

Ну, а "правильных" вариантов в решении нетиповых задач нет, правильный тот, который работает :)
---
Не совсем понятно сработает ли это, если данные заполнения одинаковые (а они могут быть, по условию). Формы открываются в произвольное время по требованию пользователя, необходимости открыть разом много нет. Я размышлял над имеющимся решением - если после записи в ID формы записать что-то чтобы платформа распознала что теперь эта форма того самого объекта..
---
Что такое "ID формы"? УникальныйИдентификатор?
---
Да
---
Сработает и с одинаковыми, и без данных заполнения вообще. Реквизит в примере заполнен сугубо для визуально-наглядного понимания того, что открываются формы двух разных документов при тестировании
---
Проверил на тестовой конфигурации - действительно работает. Попробую внедрить в рабочее решение и позже отпишу результат.
---
Как открываете формы сейчас? Так:

```1c
    ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",,,Новый УникальныйИдентификатор);
    ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",,,Новый УникальныйИдентификатор);
```
---
Да
---
На отчётах точно не срабатывает, активизирует уже открытую форму...
(10) - решение более универсальное!
---
Еще немного помедитировав над (2), и (7) пришел к
ОткрытьФорму("...",,,Истина);

И всё в моей жизни стало прекрасно.

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

То есть страницы я создал так.

```1c
    Для Каждого Элемент ИЗ МассивОборудования Цикл

    ИмяСтраницы = СтрЗаменить(Строка(Элемент.Оборудование)," ",");
    НоваяГруппа = ЭтаФорма.Элементы.Добавить(ИмяСтраницы, Тип("ГруппаФормы"),Элементы.Группа6);
    НоваяГруппа.Вид = ВидГруппыФормы.Страница;
    НоваяГруппа.Заголовок = Строка(Элемент.Оборудование);

    НовыйЭл = Элементы.Добавить("ДанныеСотрудников" + ИмяСтраницы, Тип("ТаблицаФормы"), НоваяГруппа);
    НовыйЭл.ПутьКДанным = "Объект.ДанныеСотрудников";

    ЭлементТаблицыФормы = Элементы.Добавить("ДанныеСотрудников" + Сч, Тип("ПолеФормы"),НовыйЭл);
    ЭлементТаблицыФормы.Вид = ВидПоляФормы.ПолеВвода;
    ЭлементТаблицыФормы.ПутьКДанным = "Объект.ДанныеСотрудников.Сотрудник";
    Сч = Сч + 1;

    КонецЦикла;
```

А как теперь сделать чтобы данные из табличной части попадали каждый в свою таблицу значений? так как связь идет с табличной часть данные сотрудников, то у меня в табличную часть попадает всё. То есть у меня летит и Камаз и Камаз 2 все в обе табличные части. Можно было бы получать запросом что какому оборудованию соответствует и уже добавлять, но думаю может есть красвый метод.
---
```1c
    ЭлементТаблицыФормы.ОтборСтрок = Новый ФиксированнаяСтруктура("Оборудование", Элемент);
```
---
В зависимости от выбранной закладки устанавливать ОтборСтрок в тз на форме.
---
Для начала определись - тебе нужна именно таблица значений как реквизит с самостоятельными данными, или таблица на форме, которая просто отображает отбор по табличной части?
---
Мне нужна таблица на форме, которая отображает отбор по табличной части.
---
Тогда (5) опередил
---
В зависимости от выбранной закладки устанавливать ОтборСтрок в тз на форме.
---
```1c
    ЭлементТаблицыФормы.ОтборСтрок = Новый ФиксированнаяСтруктура("Оборудование", Элемент);
```
---
Шикарно) Всем спасибо! все супер.
Добрый день, подскажите почему запрос возвращается пустым как будто не отрабатывает параметр запроса? в массив приходят все данные.
На управляемой форме есть реквизит формы с типом ДеревоЗначений.

НаСервере
Процедура ...
   СтрокаДерева = МоеДерево.ПолучитьЭлементы();
// получил результат ДереваЗначений
//добавил в массив
  Массив = новый массив;
Для каждого строка из СтрокаДерева Цикл
  Массив.добавить(строка.Номенклатура);
конецЦикла;

//и хочу поместить массив в параметр запроса
тут запрос

ВЫБРАТЬ
    Номенклатура.Ссылка,
    Номенклатура.колличество
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Ссылка в (&массив)

Запрос.УстановитьПараметр("массив", массив)

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

Это если в дереве ссылка на номенклатуру, а не строка, например.
---
Все норм)) нужно было чутка запрос подправить и все поехало)
---
МоеДерево.ПолучитьЭлементы()
Синтаксис:
ПолучитьЭлементы()
Возвращаемое значение:
Тип: ДанныеФормыКоллекцияЭлементовДерева.
===== мне вот интересно, за это платят как за программирование или это так учат сейчас?
---
А что в данном случае не так? ТС получает коллекцию и обходит ее в цикле.
---
ну он же номенклатуру вроде бы хочет передать в запрос. А получает
Элементы коллекции:
ДанныеФормыЭлементДерева
не ну я не против, конечно.

Честно говоря, я только от него узнал о существовании метода ПолучитьЭлементы() . А я уж передал из деревьев в запросы уже наверное тысячи массивов... век живи - век учись )
---
У автора:Для каждого строка из СтрокаДерева Цикл
Массив.добавить(строка.Номенклатура);
конецЦикла;

узнал о существовании метода ПолучитьЭлементы() Это ж классика, на клиенте можно работать, без сервера.
А на сервере - да, проще дерево в прикладной объект выгрузить и работать как с обычным деревом.
---
на клиенте можно работать, без сервера
так запрос же? на клиенте?? как я отстал от современных технологий.... главное, чтобы клиенты этого не узнали о)
---
так запрос же? В данном частном случае - да, в запрос надо собрать значения из колонки дерева формы.
Но ведь иерархическая работа с деревом формы и его элементами/строками используется не только для запросов, не правда ли?
---
не все гоняют все данные формы на сервер и это вообще обычно не приветствуется
---
В дереве точно ссылки?
Здравствуйте! Необходимо сворачивать блоки текста которые отображены на форме, сделал так:

```1c
    Если ЗначениеЗаполнено(ИсторияВыполнения) Тогда
    Если ЭтоПервый Тогда
    HTMLТекст = HTMLТекст + "<p>";
    HTMLТекст = HTMLТекст + ";
    ОбзорОбъектовКлиентСервер.ДобавитьПодпись(HTMLТекст, НСТР("ru = 'История выполнения:'"));
    HTMLТекст = HTMLТекст + ";
    HTMLТекст = HTMLТекст + ";
    ЭтоПервый = Ложь;
    КонецЕсли;
    ИсторияВыполненияHTML = ";
    ОбзорОбъектовКлиентСервер.ДобавитьРеквизит(ИсторияВыполненияHTML, ", ИсторияВыполнения);
    ИсторияВыполненияHTML = СтрЗаменить(ИсторияВыполненияHTML, Символы.Таб, "   ");
    ИсторияВыполненияHTML = СтрЗаменить(ИсторияВыполненияHTML, Символы.ПС, ");
    НачатьГруппировкуHTML(HTMLТекст,ВыборкаЗаявко.ПредметНаименование, Истина);

    HTMLТекст = HTMLТекст + ИсторияВыполненияHTML;
    ЗакончитьГруппировкуHTML(HTMLТекст)

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

```1c
    Процедура НачатьГруппировкуHTML(ТекстHTML, Заголовок, Открыть = Истина)

    ТекстHTML = ТекстHTML + "<details" + ?(Открыть, " open = "open"", ")+ ">
    |<summary> " + ВРег(Заголовок) + " </summary>";

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

    Процедура ЗакончитьГруппировкуHTML(ТекстHTML)

    ТекстHTML = ТекстHTML + "</details> ";

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

В итоге стрелки появились, но они не работают, может можно атрибутом регулировать это или вообще нельзя?
---
Вопрос закрыт. Оказывается в общем модуле идет СтандартнаяОбработка = Ложь, поэтому и не работало, сделал проверку при нажатии, если тег summary, то стандартная обработка = истина.
Также работает и это:

```1c
    Скрипт = "
    |<sc ript type="text/javascript">
    |function look(type){
    |param=document.getElementById(type);
    |if(param.style.display == "none") param.style.display = "block";
    |else param.style.display = "none"}
    |</sc ript>
    |" + ВыборкаЗаявок.ПредметНаименование + "
    |<div id="div1" style="display:block">
    | "+ ИсторияВыполненияHTML + "
    |</div>";
```
---
Вопрос закрыт. Оказывается в общем модуле идет СтандартнаяОбработка = Ложь, поэтому и не работало, сделал проверку при нажатии, если тег summary, то стандартная обработка = истина.
Также работает и это:

```1c
    Скрипт = "
    |<sc ript type="text/javascript">
    |function look(type){
    |param=document.getElementById(type);
    |if(param.style.display == "none") param.style.display = "block";
    |else param.style.display = "none"}
    |</sc ript>
    |" + ВыборкаЗаявок.ПредметНаименование + "
    |<div id="div1" style="display:block">
    | "+ ИсторияВыполненияHTML + "
    |</div>";
```
1С 8.3.24
Есть табличная часть, где есть реквизиты и на всех в конце порядковый номер, мне нужно ссылаться в массиве к ним, прибавляя число, типа такого:
```1c
    Номер = 1;
    Для каждого строка из Массив Цикл
    Элементы.НазваниеРеквизита[Номер].Заголовок = "НазваниеЗаголовка";
    Номер = Номер + 1;
    КонецЦикла;
```

Так вот, как это правильно сделать, сам додуматься не смог и информацию не смог найти, подскажите пожалуйста
---
```1c
    Элементы[НазваниеРеквизита + Номер].Заголовок = "НазваниеЗаголовка"
```
---
```1c
    Элементы[НазваниеРеквизита + Номер].Заголовок = "НазваниеЗаголовка"
```
---
Спасибо большое, работает
Подскажите как решить проблему если на форме несколько ТЧ и на каждую надо ПриАктивизацииСтроки сделать?
т.е. на форме находится несколько таблиц и при выборе записи в одной надо перезаполнить вторую, а при выборе записи во второй надо заполнить третью.
повесил все на событие Таблиц ПриАктивизацииСтроки, по итогу получил зацикливание, т.к. при заполнении второй таблицы срабатывает ее активизация, потом опять первая, вторая, третья, слетает текущая строка в этих таблицах (если выбрана не первая)
---
Для каждой таблицы запоминать индекс текущей строки и если он не изменился - ниче не делать.
---
В при активизации строки подключить обработчик ожидания и перенести заполнение таблиц в него.
---
Для каждой таблицы запоминать индекс текущей строки и если он не изменился - ниче не делать.
---
спасибо, получилось
Добрый день!
Есть макет табличного документа (пустой, содержит два заголовка колонок), отображается на форме. При двойном клике в ячейке "ОПФ", в обработчике "Выбор" программно устанавливаю ячейке "использовать значение", с типом "ПеречислениеСсылка.ЮрФизЛицо". Заполняю список значений значениями данного перечисления.
```1c
    &НаКлиенте
    Процедура ТаблицаВыбор(Элемент, Область, СтандартнаяОбработка)
    Если СтрНайти(Область.Имя, "C2") > 0 Тогда
    Область.СодержитЗначение = Истина;

    МассивТипов = Новый Массив();
    МассивТипов.Добавить(Тип("ПеречислениеСсылка.ЮрФизЛицо"));
    Область.ТипЗначения = Новый ОписаниеТипов(МассивТипов);

    Список = Новый СписокЗначений;

    Список.Добавить(ПредопределенноеЗначение("Перечисление.ЮрФизЛицо.ЮрЛицо"));
    Список.Добавить(ПредопределенноеЗначение("Перечисление.ЮрФизЛицо.ФизЛицо"));

    ДопПараметры = Новый Структура("Область", Область);
    ОписаниеОповещения = Новый ОписаниеОповещения("ЗаписатьРезультатВыбора", ЭтотОбъект, ДопПараметры);
    ПоказатьВыборИзСписка(ОписаниеОповещения, Список, Элемент);
    КонецЕсли;
    КонецПроцедуры
```

и устанавливаю выбранное значение
```1c
    &НаКлиенте
    Процедура ЗаписатьРезультатВыбора(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт

    Если ВыбранныйЭлемент = Неопределено Тогда
    Возврат;
    КонецЕсли;

    ДополнительныеПараметры.Область.Значение = ВыбранныйЭлемент.Значение;

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

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

```1c
    Макет = ОбрОбъект.ПолучитьМакет("МакетТД");
    Таблица.Вывести(Макет);
```
---
Вариант из (2) отработал. Во вложении тестовая внешняя обработка. В исправляемой базе дорабатывается обработка через расширение (макет), код стараюсь особо не править. Тем не менее, благодарю за подсказку. Может еще кому-то подойдет и Ваше решение.
Забил в глобальный поиск строку РегистрСведений.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ­
В попытке найти тех, кто добавляет туда информацию... Выдал только в запросах... Как туда информация попадает?
---
"Поиск ссылок на объект" в помощь
---
Логично, что с таким поисковым запросом только в запросах выдал:) Попробуй задать либо "РегистрСведенийЫ.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ­", либо просто наименование регистра
---
Поставили задачу подкорректировать отображение ВАХТового стажа. В разрез законодательству (поэтому и надо корректировать), но это уже другая история. Ссылки на Закон и логику не возымели действия. Вот и пытаюсь найти место, где подправить..
---
"Поиск ссылок на объект" в помощь
---
Естественно тоже. Спасибо
---
Логично, что с таким поисковым запросом только в запросах выдал:) Попробуй задать либо "РегистрСведенийЫ.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ­", либо просто наименование регистра
---
РегистрСведенийЫ.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ
Спс.. затупил. Нашлось..
---
Очепятался:) Разумееется имел в виду "РегистрЫСведений":)
---
Ну это понятно :))
Добрый день, подскажите кто знает. Делаю отчет в СКД, написал запрос, всё настроил, добавил чтобы по периодам можно было выводить данные и при проверке, вижу, что после выбора периода, к имеющимся записям почему-то добавляются ещё 4 и стоят в самом конце месяца, но таких дат в регистрах нет. Где это исправить так и не нашел.
---
запрос будет работать только при условии что товары только дорожают. Если случится чудо и товар подешевеет то отчет будет не правильным.

Когда используешь остаткииобороты то обязательно выводится начало периода и конец периода. Так как начальных остатков не было или цены то он не вывел. А конечный получите - это твои 4 строчки.

Тебе надо отдельным запросом получать цену на каждый день и потом соединять с остатками через равно по номенклатуре и периоду.
---
Текст запроса в студию.

Получаешь данные из таблицы остаткииобороты? Какое-нибудь дополнение указываешь?
---
Вот сам запрос. Тут я пытаюсь получить цену последней закупки на дату отчета. Если цены нет, то последнюю имеющуюся. Метод подсмотрел, но вроде работает.
---
запрос будет работать только при условии что товары только дорожают. Если случится чудо и товар подешевеет то отчет будет не правильным.

Когда используешь остаткииобороты то обязательно выводится начало периода и конец периода. Так как начальных остатков не было или цены то он не вывел. А конечный получите - это твои 4 строчки.

Тебе надо отдельным запросом получать цену на каждый день и потом соединять с остатками через равно по номенклатуре и периоду.
---
Все даты в регистре сведений "ЦеныПоступление", которые меньше или равны датам в "ОстаткиТоваров" создают строку.
Так работает соединение таблиц по условию ">=". Это не в СКД проблема, а в запросе.
При переходе в тонкий, старые видно, а мои не появляются :(
---
Кэш? Список выбора элемента формы?
---
в ERP может и программное ограничение стоять.
Может и расширение отвалиться.
---
Расскажи нам - как ты научилась в конфигураторе "переходить в тонкий клиент"?
---
Через отладку, что не так
---
Так это не переход. Это запуск Предприятие в режиме "тонкого клиента".
---
Переход в режим запуска Предприятия в режиме "тонкого клиента".
Почему 1сники всегда докапываются, вместо того чтобы нормально на вопрос ответить...
---
Не докапываются, а учат общаться на нормальном языке. А не на пользюковском.
---
Кэш? Список выбора элемента формы?
---
Да, список выбора стоял, спасибо
Цель - проверить размещается ли часть табличного документа на странице.
Написал функцию.
У меня работает, у клиента нет (возможно на другом принтере).
Куда можно порыться?

```1c
    Функция ПроверитьПомещаетсяЛиТабличныйДокументНаСтраницу(ТабличныйДокумент, ТабличныйДокументОбласть, Режим = "Вывод") Экспорт

    Если Режим = "ВыводПрисоединение" Тогда
    Возврат
    ПроверитьПомещаетсяЛиТабличныйДокументНаСтраницу(ТабличныйДокумент, ТабличныйДокументОбласть, "Вывод") И
    ПроверитьПомещаетсяЛиТабличныйДокументНаСтраницу(ТабличныйДокумент, ТабличныйДокументОбласть, "Присоединение");
    КонецЕсли;

    //Проверятор = ТабличныйДокумент.ПолучитьОбласть(1, , 1);
    //Проверятор = ТабличныйДокумент.ПолучитьОбласть("R1");
    Проверятор = Новый ТабличныйДокумент(); //Берем пустой

    ЗаполнитьЗначенияСвойств(Проверятор, ТабличныйДокумент,
    "АвтоМасштаб,ВысотаСтраницы,ДвусторонняяПечать,ИмяПараметровПечати,ИмяПринтера,ИтогиСнизу,ИтогиСправа,"
    "КлючПараметровПечати,КлючСохраненияПоложенияОкна,КоличествоЭкземпляров,Макет,МасштабПечати,НаправлениеПерехода,НаправлениеТекста,"
    "НомерПервойСтраницы,ОриентацияСтраницы,ПлотностьСохраняемыхКартинок,ПолеСверху,ПолеСлева,ПолеСнизу,ПолеСправа,"
    "РазборПоКопиям,РазмерКолонтитулаСверху,РазмерКолонтитулаСнизу,РазмерСтраницы,ТочностьПечати,"
    "ЧередованиеРасположенияСтраниц,ЧерноБелаяПечать,ШиринаСтраницы,ЭкземпляровНаСтранице");

    ЗаполнитьЗначенияСвойств(Проверятор.ВерхнийКолонтитул, ТабличныйДокумент.ВерхнийКолонтитул,
    "ВертикальноеПоложение,Выводить,НачальнаяСтраница,ТекстВЦентре,ТекстСлева,ТекстСправа,Шрифт");
    ЗаполнитьЗначенияСвойств(Проверятор.НижнийКолонтитул, ТабличныйДокумент.НижнийКолонтитул,
    "ВертикальноеПоложение,Выводить,НачальнаяСтраница,ТекстВЦентре,ТекстСлева,ТекстСправа,Шрифт");

    //Если Режим = "Вывод" Тогда //Удаляем строки
    // //Проверятор.УдалитьОбласть(Проверятор.Область(1, ,1), ТипСмещенияТабличногоДокумента.ПоВертикали);
    // Проверятор.УдалитьОбласть(Проверятор.Область("R1"), ТипСмещенияТабличногоДокумента.ПоВертикали);
    //КонецЕсли;
    //
    //Если Режим = "Присоединение" Тогда //Удаляем колонки
    // Проверятор.УдалитьОбласть(Проверятор.Область(,1,,Проверятор.ШиринаТаблицы), ТипСмещенияТабличногоДокумента.ПоГоризонтали);
    //КонецЕсли;

    Если Режим = "Вывод" Тогда
    Если НЕ Проверятор.ПроверитьВывод(ТабличныйДокументОбласть) Тогда
    Возврат ложь;
    КонецЕсли;
    КонецЕсли;

    Если Режим = "Присоединение" Тогда
    Если НЕ Проверятор.ПроверитьПрисоединение(ТабличныйДокументОбласть) Тогда
    Возврат ложь;
    КонецЕсли;
    КонецЕсли;

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

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

Принтер там проброшен через RDP, может быть из-за этого как-то некорректно считает.
---
Был какой-то временный сбой. Потом заработало. Странно.
---
Был какой-то временный сбой. Потом заработало. Странно.
Непонятно, за счет чего неверно формируется налог на прибыль в БУ при закрытии месяца регламентными операциями – в 2 раза ниже, чем нужно, т.е., возможно, где-то зафиксирован убыток прошлых лет, но как это выяснить наверняка?
В декларации по налогу на прибыль доходы и расходы заполняются верно (правда, убираем в 2024 г. при заполнении декларации в приложении 3 к листу 2 только убыток сумму от продажи основных средств)
---
Да, раз ровно 50%, то это убытки прошлых лет. В 1С БП их движения можно увидеть на счёте 97.11 (чисто НУ) с аналитикой по годам.
В закрытиях каждого месяца 2025 года проводку по 97.11(НУ) делает предпоследняя регламентная операция "Перенос убытков по налогу на прибыль"
---
Да, раз ровно 50%, то это убытки прошлых лет. В 1С БП их движения можно увидеть на счёте 97.11 (чисто НУ) с аналитикой по годам.
В закрытиях каждого месяца 2025 года проводку по 97.11(НУ) делает предпоследняя регламентная операция "Перенос убытков по налогу на прибыль"
Как в регистре сведений (независимый, непериодический) отловить событие при удалении записи?
---
обработчик ПередЗаписью регистра сведений

```1c
    Процедура ПередЗаписью(Отказ, Замещение)

    Если Замещение И Выгрузить().Количество() = 0 Тогда
    //Это удаление записей
    КонецЕсли;

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

Только нужно учитывать, что МенеджерЗаписи при перезаписи всегда делает 2 записи. Сначала запись пустого набора (как раз попадает в условие удаление записи), затем записывает уже с данными.
---
ПередЗаписью пустого набора в модуле набора.
---
ПередЗаписью пустого набора в модуле набора.
---
событие при удалении записи
Любое изменение регистра (и не только) нужно зафиксировать.
Фиксация события происходит записью изменений таблицы.

Смотрите в сторону ПриЗаписи или ПередЗаписью.
---
обработчик ПередЗаписью регистра сведений

```1c
    Процедура ПередЗаписью(Отказ, Замещение)

    Если Замещение И Выгрузить().Количество() = 0 Тогда
    //Это удаление записей
    КонецЕсли;

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

Только нужно учитывать, что МенеджерЗаписи при перезаписи всегда делает 2 записи. Сначала запись пустого набора (как раз попадает в условие удаление записи), затем записывает уже с данными.
Доброе время суток, уважаемые.
Задача такая.
Есть условие в запросе.
Это условие выражено в виде выражения равенства реквизита регистратора:
Регистратор.Реквизит = &Параметр;
Проблема в том, что регистраторов несколько. (Документы разных типов).

Вопрос: Как правильно написать такое условие?

С уважением.
---
```1c
    ВЫБОР ТИПЗНАЧЕНИЯ(Регистратор)
    КОГДА ТИП(Документ.Документ1)
    ТОГДА ВЫРАЗИТЬ(Регистратор КАК Документ.Документ1).Реквизит
    КОГДА ТИП(Документ.Документ2)
    ТОГДА ВЫРАЗИТЬ(Регистратор КАК Документ.Документ2).Реквизит
    КОГДА ТИП(Документ.Документ3)
    ТОГДА ВЫРАЗИТЬ(Регистратор КАК Документ.Документ3).Реквизит
    КОНЕЦ = &Параметр
```
---
Вы можете сначала отобрать нужные регистраторы, а в регистре уже делать отбор по ссылке на выбранные ранее регистраторы.
---
```1c
    ВЫБОР ТИПЗНАЧЕНИЯ(Регистратор)
    КОГДА ТИП(Документ.Документ1)
    ТОГДА ВЫРАЗИТЬ(Регистратор КАК Документ.Документ1).Реквизит
    КОГДА ТИП(Документ.Документ2)
    ТОГДА ВЫРАЗИТЬ(Регистратор КАК Документ.Документ2).Реквизит
    КОГДА ТИП(Документ.Документ3)
    ТОГДА ВЫРАЗИТЬ(Регистратор КАК Документ.Документ3).Реквизит
    КОНЕЦ = &Параметр
```