Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Добрый день. Нужна помощь в создании новой записи регистра

Добрый день. Нужна помощь в создании новой записи регистра
Я
   jinny84
 
18.11.20 - 13:00
Добрый день. Создал обработку чтобы поменять у всех контрагентов кто есть в определенной групу счета учета, выходи ошибка :{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(12)}: Итератор для значения не определен
    для каждого эллемент из Контрагент цикл

Подскажите как исправить?


&НаКлиенте
Процедура Сформировать(Команда)
    СформироватьНаСервере(Объект.Группа,объект.Организация,объект.СчетУчетаАвансовПолученных,объект.СчетУчетаРасчетовСПокупателем);
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере(Группа, Организация, СчетУчАв, СчетУчРас)
    НаборЗаписей = РегистрыСведений.СчетаУчетаРасчетовСКонтрагентами.СоздатьНаборЗаписей();
    НоваяЗапись = НаборЗаписей.Добавить();
    Контрагент = Справочники.Контрагенты.ПолучитьСсылку();
    для каждого эллемент из Контрагент цикл
        Если эллемент.Родитель = Группа Тогда
            НоваяЗапись.Контрагент = эллемент;
        НоваяЗапись.Организация = Организация;
        НоваяЗапись.СчетУчетаРасчетовСПокупателем = СчетУчРас;
        НоваяЗапись.СчетУчетаАвансовПолученных = СчетУчАв;
        
        НаборЗаписей.Записать();
    КонецЕсли;
    КонецЦикла
КонецПроцедуры
   ДенисЧ
 
1 - 18.11.20 - 13:08
Контрагент = Справочники.Контрагенты.ПолучитьСсылку();
    для каждого эллемент из Контрагент цикл

Это вообще что было???
   jinny84
 
2 - 18.11.20 - 13:13
(1) обойти всех контрагентов
   ДенисЧ
 
3 - 18.11.20 - 13:15
(2) Таким способом можно обойти только все места, куда посылают грубыми словами.

Справочник обходится через .Выбрать()
   youalex
 
4 - 18.11.20 - 13:16
>>выходи ошибка :

если на продуктиве, то можно сказать,  повезло
   Волшебник
 
5 - 18.11.20 - 13:22
Тут всё серьёзнее.

у НаборЗаписей не установлен отбор. Он каждый раз будет переписывать весь регистр сведений
   Волшебник
 
6 - 18.11.20 - 13:22
Ещё раз. Весь регистр СчетаУчетаРасчетовСКонтрагентами будет очищен
   ДенисЧ
 
7 - 18.11.20 - 13:23
(6) Не будет. У неё код не запускается ))
   Волшебник
 
8 - 18.11.20 - 13:23
(6)+ по всем контрагентам
   Волшебник
 
9 - 18.11.20 - 13:24
(7) Вы сейчас поможете исправить Ссылка на Выборка и код сработает.
   Малыш Джон
 
10 - 18.11.20 - 13:45
ну и по мелочи: НоваяЗапись = НаборЗаписей.Добавить() находится перед циклом
   youalex
 
11 - 18.11.20 - 13:58
(7) еще немного брутфорса и запустится)
   jinny84
 
12 - 18.11.20 - 14:13
(6) Мне его нужно весь переписать
   jinny84
 
13 - 18.11.20 - 14:13
и добавить новых контрагентов
   Волшебник
 
14 - 18.11.20 - 14:15
(12) Если пишете в регистр сведений, то лучше писать одну запись
   jinny84
 
15 - 18.11.20 - 14:20
(14) можно пример?
   Волшебник
 
16 - 18.11.20 - 14:36
(15) МенеджерЗаписи.Записать();
   jinny84
 
17 - 18.11.20 - 15:03
(16) Через Менеджер, только одну запись создает, а мне нужно ко всем контрагентам создать(
   Капитан Джек Воробей
 
18 - 19.11.20 - 10:29
(0) Мои глазы...


&НаСервере
Процедура СформироватьНаСервере(Группа, Организация, СчетУчАв, СчетУчРас)
    НаборЗаписей = РегистрыСведений.ДанныеСКУД.СоздатьНаборЗаписей()//СчетаУчетаРасчетовСКонтрагентами.СоздатьНаборЗаписей();

    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Контрагенты.Ссылка КАК Контрагент
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |    НЕ Контрагенты.ЭтоГруппа
        |    И НЕ Контрагенты.ПометкаУдаления
        |    И Контрагенты.Родитель = &Группа";
    Запрос.УстановитьПараметр("Группа",Группа);
    РезультатЗапроса = Запрос.Выполнить();
    
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл
        НаборЗаписей.Отбор.Контрагент.Установить(Контрагент);
        НаборЗаписей.Отбор.Организация.Установить(Организация);
        НоваяЗапись.Контрагент = Выборка.Контрагент;
        НоваяЗапись.Организация = Организация;
        НоваяЗапись.СчетУчетаРасчетовСПокупателем = СчетУчРас;
        НоваяЗапись.СчетУчетаАвансовПолученных = СчетУчАв;
        НаборЗаписей.Записать();
    КонецЦикла;
КонецПроцедуры
   Капитан Джек Воробей
 
19 - 19.11.20 - 10:29
(18) +
НаборЗаписей = РегистрыСведений.СчетаУчетаРасчетовСКонтрагентами.СоздатьНаборЗаписей();
   hhhh
 
20 - 19.11.20 - 10:31
(17)         НоваяЗапись.Контрагент = Группа;
   Капитан Джек Воробей
 
21 - 19.11.20 - 10:31
(18)+
забыл)
Пока Выборка.Следующий() Цикл
        НаборЗаписей.Отбор.Контрагент.Установить(Контрагент);
        НаборЗаписей.Отбор.Организация.Установить(Организация);
        
        НоваяЗапись = НаборЗаписей.Добавить();
        
        НоваяЗапись.Контрагент = Выборка.Контрагент;
        НоваяЗапись.Организация = Организация;
        НоваяЗапись.СчетУчетаРасчетовСПокупателем = СчетУчРас;
        НоваяЗапись.СчетУчетаАвансовПолученных = СчетУчАв;
        НаборЗаписей.Записать();
    КонецЦикла;
   Волшебник
 
22 - 19.11.20 - 10:36
Регистр уже уничтожили?
   Капитан Джек Воробей
 
23 - 19.11.20 - 10:43
(22) я надеюсь он делает на тестовой), но проверять это, я конечно же не буду...
   Михаил Козлов
 
24 - 19.11.20 - 10:52
(22) Надеюсь, да. А как еще учиться?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.