новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Регистр

    • #1
    • 01.09.2014 12:06
    0
    Подскажите пожалуйста, в не управляемой форме с кодом разобрался работает, а в управляемой вставляю тоже само и не работает. Судь в том что, в регистре сведений, если по измерению и ресурсу есть записи, то выполнить замену старого измерения на новое, если не изменилось оставить как есть? Заранее спасибо!
    • #2
    • 01.09.2014 12:19
    0
    Александр Сергеевич
    спасибо
    работа с регистрами - не зависит от формы. хоть управляемая, хоть неуправляемая - без разницы.

    вот отображение (ну и действия) на формах - различается, да.

    что нужно-то?
    • #3
    • 01.09.2014 12:19
    0
    Процедура ПриЗаписи(Отказ)
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Водитель", Водитель);
    Запрос.Текст = "ВЫБРАТЬ
    | ИнформацияОРейсахВодителя.Водитель,
    | ИнформацияОРейсахВодителя.Регистратор.Ссылка КАК Ссылка
    |ИЗ
    | РегистрСведений.ИнформацияОРейсахВодителя КАК ИнформацияОРейсахВодителя
    |ГДЕ
    | ИнформацияОРейсахВодителя.Рейс.Ссылка = &Ссылка";

    Выборка = Запрос.Выполнить().Выбрать();

    Если Водитель.Ссылка <> Выборка.Ссылка Тогда
    Режим = РежимДиалогаВопрос.ДаНет;
    Текст = "ru = "" По данному водителю есть записи в регистре сведений, заменить водителя?""";
    Ответ=Вопрос(НСтр(Текст),Режим,0);
    Если Ответ=КодВозвратаДиалога.Нет Тогда
    Возврат;
    Иначе

    Пока Выборка.Следующий() Цикл

    НаборЗаписей = РегистрыСведений.ИнформацияОРейсахВодителя.СоздатьНаборЗаписей(); // для внесения изменения создаем набор записей
    НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка); //устанавливаем отбор
    НаборЗаписей.Прочитать(); // прочитать их
    Для Каждого Запись Из НаборЗаписей Цикл // производим изменения
    Если Запись.Рейс = Ссылка И Запись.Водитель <> Водитель Тогда

    Запись.Водитель = Водитель;
    КонецЕсли;
    КонецЦикла;
    НаборЗаписей.Записать();
    КонецЦикла;

    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    • #4
    • 01.09.2014 12:21
    0
    повторяю вопрос -
    SK
    что нужно-то?
    • #5
    • 01.09.2014 12:27
    0
    Для справочника рейс сделать: при изменении реквизита водитель анализировать регистр сведений, если по рейсу и водителю есть записи в регистре, то выполнить замену старого водителя на нового, если не меняется, то оставить как есть.
    • #6
    • 01.09.2014 12:33
    • Отредактировано: 01.09.2014 12:36:35
    0
    Александр Сергеевич
    при изменении реквизита водитель анализировать регистр сведений, если по рейсу и водителю есть записи в регистре, то выполнить замену старого водителя на нового, если не меняется, то оставить как есть


    При записи объекта справочника (уже - после неё самой) нужно вызвать (&НаСервере) метод РегистрСведенийНаборЗаписей.<ИмяРегистра>.Записать(Истина) для Записи с нужными реквизитами.

    только для НабораЗаписей - отбор обязательно установить нужный. Иначе все записи удалятся.
    • #7
    • 01.09.2014 13:10
    • Отредактировано: 01.09.2014 13:32:46
    0
    Не знаю как исправить ошибку, подскажите?

    Ошибка: Слишком много фактических параметров (Вопрос)
    Ответ=Вопрос(<<?>>НСтр(Текст),Режим,0); (Проверка: Сервер)
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться