• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Цикл по табличному полю...Не получается. Помогите.

  • Автор темы anivaler
  • Дата начала
F

FireSTream

У Поля ввода есть событие "ПриОчистке". оно всех спасет.
 
A

anivaler

Всё с очисткой всё ок. Но с регистром сведений вопрос открыт. метод СрезПоследних () не катит, т.к. регистр сведений непериодический...
Я пишу:

[codebox]Процедура Шофер2Проверка(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Отбор = Новый Структура;
Отбор.Вставить("Водители", ВыбранноеЗначение);
Рег = РегистрыСведений.СвободныеВодителиГород;
ЗначениеРесурса = Рег.Получить(Отбор);
Если ЗначениеРесурса.ВидРаботы = "Выходной" Тогда
Сообщить ("Ошибка! Водитель: " + ВыбранноеЗначение + " на выходном");
СтандартнаяОбработка = Ложь;
Иначе
Сообщить ("Другое");
КонецЕсли;
КонецПроцедуры [/codebox]

При выборе значения в ячейке выскакивает ошибка:

{Документ.РазнарядкаНаДатуГород.Форма.ФормаДокумента(352)}: Ошибка при вызове метода контекста (Получить): Недопустимое значение параметра (параметр номер '1')
ЗначениеРесурса = Рег.Получить(Отбор);
по причине:
Недопустимое значение параметра (параметр номер '1')

Что здесь не в порядке и правильно ли я вообще делаю?
 
F

FireSTream

Воистину странны проделки человечества. Чудно оно у вас там все спроектировано =)

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

Либо указаны не все измерения, либо гдето ошибка в наименовании измерения. Или регистр у вас все-таки периодический =)
 
A

anivaler

Измерение точно одно - "Водитель".

Подожди, а как тогда нужно написать???
 
A

anivaler

Всё. Ошибка в слове "Водители". Нужно было написать "ВодителЬ".

Ещё вопрос.
Мне нужно событие которое возникает, после нажатия на кнопку Добавить (Ins). Имею ввиду добавить новый документ, например. И как такая процедура будет выглядеть?
 
F

FireSTream

Почитай про табличное поле. Там ВСЕ ЕСТЬ.
 
A

anivaler

Ок. Взял событие ПередОткрытием(). Оно мне подходит. Только у меня вопрос возник.
Мне нужно проверку регистра сведений сделать. Если он пустой, то добавить записи. Если он не пустой, тогда другие действия.
Как это будет на встроенном языке выглядеть?
 
A

anivaler

В регистресведений СвободныеМашиныГород у меня: измерение госНомер (тип СправочникСсылка. Гаражныеномера) и ресурс СостояниеАвтобуса (тип перечисленияссылка.состояниеавтобуса).
Имеется 7 записей.
3 записи с состоянием КапРемонт. Остальные 4 с состоянием БезШофера.

При создании новго документа использую событие ПередОткрытием();

[codebox]Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
//процедура где идет заполнение и проверка записей регистра
БезШофера = Перечисления.СостояниеАвтобуса.БезШофера;
ТекРемонт = Перечисления.СостояниеАвтобуса.ТекущийРемонт;
КапРемонт = Перечисления.СостояниеАвтобуса.КапитальныйРемонт;
Набор = РегистрыСведений.СвободныеМашиныГород.СоздатьНаборЗаписей();
Набор.Прочитать();
Для Каждого Запись Из Набор Цикл
Если Запись.СостояниеАвтобуса = БезШофера Тогда
Индекс = Набор.Индекс(Запись);
Набор.Удалить(Индекс);
Иначе Продолжить;
КонецЕсли;
Набор.Записать();
КонецЦикла;
КонецПроцедуры[/codebox]

Так вот после открытия удаляются лишь 2 записи с состояние БезШофера. Снова создаем документ. Удаляется одна из двух оставшихся записей. Создаём документ ещё раз и только теперь все записи с состоянием Безшофера исчезли. Записи с другим состояниемавтобуса он не удаляет, как мне и надо.
Объясните, где ошибка и почему он не удаляет сразу все записи с сотоянием БезШофера???
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!