Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отбор списком в регистре сведений          
lensky Подменю пользователя
сообщение 26.09.17, 9:56
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 15
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!

Друзья, прошу помощь в решении вот такой проблемы. Собственно сабж:
Есть регистр сведений "Анализ инвентаризаций". Есть обработка (см. картинку) При нажании на кнопку Начать пересчет, в регистр автоматически попадают выделенные позиции, при нажатии завершить устанавливается то кол-во которые указали при пересчете.
Ситуация может быть такова, что некоторые позиции может потребоваться пересчитать ещё раз, но как только в отборе я ставлю номенклатуру, то ошибка у меня всплывает отбора. Вот код отбора:

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


Реквизит МН это Массив
Запрос = новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
                          |    АнализИнвентаризаций.Номенклатура
                          |ИЗ
                          |    РегистрСведений.АнализИнвентаризаций КАК АнализИнвентаризаций
                          |ГДЕ
                          |    АнализИнвентаризаций.Док = &Док
                          |    И АнализИнвентаризаций.Номенклатура В(&МН)");
                          
    Запрос.УстановитьПараметр("Док"    ,ВыбДок);
    Запрос.УстановитьПараметр("МН"    ,ТВН.ВыгрузитьКолонку("Номенклатура"));
    
    втАН    = Запрос.Выполнить().Выгрузить();
    втАН.Индексы.Добавить("Номенклатура");
    
    МН        = новый Массив;

МН        = новый Массив;
    
    Для каждого Строка из твН цикл
        Если втАН.Найти(Строка.Номенклатура,"Номенклатура") = неопределено тогда
            МН.Добавить(Строка.Номенклатура);    
        КонецЕсли;                                                                        
    КонецЦикла;
    
    Если МН.Количество() = 0 тогда
        Если втАН.Количество() = 0 тогда
            Предупреждение("Не выбрана номенклатура для подсчета");              
        иначе                 
            Предупреждение("Выбранная номенклатура уже пересчитывается");            
        КонецЕсли;
        
        Возврат;
    КонецЕсли;


твН просто переменная

Как сделать что бы при повторном пересчете, уже имеющияся запись в регистре перезаписывалась, а новая просто записывалась.

Заранее спасибо.


 ! 

Правила: 8
 


Сообщение отредактировал Vofka - 26.09.17, 10:36

pablo Подменю пользователя
сообщение 26.09.17, 10:03
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 191 раз
Рейтинг: 0

Работайте не с набором записей, а с менеджером. Тогда Вы сможете изменять конкретную запись регистра.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.08.22, 23:34
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!