


Программирование 1C: Предприятие
Здравствуйте. Такой вопрос. У меня есть документ "Назначения" и у него в табличной части есть несколько строк с названием. Каждую строку можно отметить как "Выполнено", поставив галочку (тип Булево). Я хочу, чтобы когда кто-то ставит галочку, в регистр сведений записывалось название строки и дата, когда галочку поставили. Как это сделать?
Здравствуйте! Для реализации автоматической записи названия строки и даты при установке галочки в табличной части документа "Назначения" создайте обработчик события "ПередЗаписью" или "ПередИзменением" формы документа. В нем добавьте проверку изменения булева поля и при срабатывании запишите соответствующие данные в регистр сведений. Рекомендую ознакомиться с материалами информационного портала по 1С, там много полезных статей по обработке событий и работе с регистрами.
Добавьте обработчик события "ПриИзменении" для элемента "Выполнено" в табличной части.
В этом обработчике проверьте, что галочка установилась (значение стало Истина).
Если условие выполнено, запишите в регистр сведений название строки и текущую дату.
Здравствуйте! Чтобы реализовать автоматическую запись в регистр сведений при установке флажка "Выполнено" в табличной части документа "Назначения", нужно использовать обработчик события изменения данных в табличной части + программно внести запись в регистр сведений.
Вот пошаговая инструкция:
🔧 Предположения:
Документ "Назначения"
Табличная часть Строки
Поля в табличной части:
Название — Строка (наименование назначения)
Выполнено — Булево
Регистр сведений: РегистрВыполненныхНазначений с измерениями:
Название (строка или ссылка на что-то)
ДатаВыполнения (дата)
✅ Шаг 1: Создайте регистр сведений
Создайте регистр сведений с такими свойствами:
Имя: РегистрВыполненныхНазначений
Тип регистра: Непериодический (если важна только дата выполнения)
Ресурсы:
ДатаВыполнения (Тип: Дата)
Измерения:
Название (Тип: Строка)
Или можно использовать ссылку на документ + номер строки — если хотите уникальность по строке документа.
✅ Шаг 2: В модуле объекта документа "Назначения" добавьте обработчик
Добавим проверку и запись в регистр в BeforeWrite() или в ОбработкаПроведения — но лучше отслеживать изменение флага.
Если хотите отслеживать в момент нажатия галочки (интерактивно), используйте модуль формы.
💡 Вариант 1: Проверка изменений в модуле формы документа (интерактивно)
1C
Процедура СтрокиПриИзменении(Элемент) Экспорт
Для Каждого Стр ИзмСтруктура Из СтрокиЦФорма.Строки Цикл
Если Стр.Выполнено И Не ЗначениеЗаполнено(Стр.ДатаВыполнения) Тогда
// Запись в регистр
НоваяЗапись = РегистрСведений.РегистрВыполненныхНазначений.СоздатьМенеджерЗаписи();
НоваяЗапись.Название = Стр.Название;
НоваяЗапись.ДатаВыполнения = ТекущаяДата();
НоваяЗапись.Записать();
// Можно сохранить дату в строке, если нужно
Стр.ДатаВыполнения = ТекущаяДата();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
💬 Подпишите обработчик на событие ПриИзменении колонки Выполнено.
💡 Вариант 2: Обработка в модуле объекта при записи
Если вы хотите обрабатывать это при проведении, добавьте в ОбработкаПроведения или ПередЗаписью:
1C
Процедура ПередЗаписью(Отказ, РежимЗаписи)
Для Каждого Стр Из Строки Цикл
Если Стр.Выполнено Тогда
НоваяЗапись = РегистрСведений.РегистрВыполненныхНазначений.СоздатьМенеджерЗаписи();
НоваяЗапись.Название = Стр.Название;
НоваяЗапись.ДатаВыполнения = ТекущаяДата();
НоваяЗапись.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
🧠 Альтернатива: Проверка на смену состояния
Если вам нужно, чтобы только при установке галочки происходила запись (а не каждый раз при сохранении), сравнивайте старое и новое значение через Объект и ЭтотОбъект.
Пример:
1C
Если Стр.Выполнено И Не ЭтотОбъект.Строки[Индекс].Выполнено Тогда
// Только при смене флага
🔚 Заключение
Вам нужно:
Создать регистр сведений с нужными измерениями.
В обработчике (формы или объекта) отследить установку флажка.
При изменении — внести запись в регистр с названием и текущей датой.
Информация подготовлена GLAVQA