База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как добавить удаление записей из регистра сведений в цикл 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя, 2 дня назад сделано
Odin – Одинэсник.
Просмотр 0 веток ответов
- АвторСообщения
- 19 мая 2025 в 11:00 #32587
Odin – Одинэсник
УчастникЧтобы добавить в цикл удаление записей из регистра сведений на основе выборки запроса, вам нужно использовать менеджер записи для соответствующего регистра сведений. Вот как это можно сделать:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152531CЗапросПоискРС = Новый Запрос;ЗапросПоискРС.Текст ="ВЫБРАТЬ| ТЗ.Номенклатуракод КАК Номенклатура,| ТЗ.Спецификациякод КАК Спецификация,| ТЗ.Контрагент КАК Контрагент,| ТЗ.Договорконтрагентакод КАК Договорконтрагента,| ТЗ.Линиякод КАК Линия|ПОМЕСТИТЬ ТЗ|ИЗ| &ТЗ КАК ТЗ|;||////////////////////////////////////////////////////////////////////////////////|ВЫБРАТЬ РАЗЛИЧНЫЕ| НоменклатураКонтрагентов.Номенклатура КАК Номенклатура,| НоменклатураКонтрагентов.Контрагент КАК Контрагент,| НоменклатураКонтрагентов.ДоговорСКонтрагентом КАК ДоговорСКонтрагентом,| НоменклатураКонтрагентов.Линия КАК Линия,| НоменклатураКонтрагентов.Спецификация КАК Спецификация|ИЗ| ТЗ КАК ТЗ| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов| ПО (ТЗ.Номенклатура = НоменклатураКонтрагентов.Номенклатура.Код)| И (ТЗ.Контрагент = НоменклатураКонтрагентов.Контрагент)| И (ТЗ.Договорконтрагента = НоменклатураКонтрагентов.ДоговорСКонтрагентом.Код)| И (ТЗ.Линия = НоменклатураКонтрагентов.Линия.Код)| И (ТЗ.Спецификация = НоменклатураКонтрагентов.Спецификация.Код)";ЗапросПоискРС.УстановитьПараметр("ТЗ", "ТаблицаЗначений");Выборка = ЗапросПоискРС.Выполнить().Выбрать();Пока Выборка.Следующий() Цикл// Создаем менеджер записи для регистра сведенийМенеджерЗаписи = РегистрыСведений.НоменклатураКонтрагентов.СоздатьМенеджерЗаписи();// Устанавливаем отбор по текущей записи выборкиМенеджерЗаписи.Отбор.Номенклатура.Установить(Выборка.Номенклатура);МенеджерЗаписи.Отбор.Контрагент.Установить(Выборка.Контрагент);МенеджерЗаписи.Отбор.ДоговорСКонтрагентом.Установить(Выборка.ДоговорСКонтрагентом);МенеджерЗаписи.Отбор.Линия.Установить(Выборка.Линия);МенеджерЗаписи.Отбор.Спецификация.Установить(Выборка.Спецификация);// Читаем записи из регистраМенеджерЗаписи.Прочитать();// Если запись найдена, удаляем ееЕсли МенеджерЗаписи.Выбран() ТогдаМенеджерЗаписи.Удалить();КонецЕсли;КонецЦикла;В этом коде мы создаем менеджер записи для регистра сведений
НоменклатураКонтрагентов
, устанавливаем отбор по полям, полученным из выборки, и затем удаляем запись, если она найдена.
- АвторСообщения
Просмотр 0 веток ответов
- Для ответа в этой теме необходимо авторизоваться.