Имя: Пароль:
1C
1С v8
Как заполнить регистр сведений программно?
, ,
0 Бюро пиявок
 
22.06.14
01:08
Имею регистр сведений "ЧерныйСписок" с одним ресурсом "Контрагент" (тип - строка).
Юзеру показана форма, где он галочками отметил тех, кто в черном списке.

В цикле Для каждого я создал массив и наполнил его наименованиями контрагентов.

Теперь хочу перезаполнить регистр полностью. Очистил регистр.

Затем:

НаборЗаписейЧерный = РегистрыСведений.ЧерныйСписок.СоздатьНаборЗаписей();

НаборЗаписейЧерный.ЗагрузитьКолонку(ЧерныйСписок, "Контрагент");

Вот тут начинаются проблемы. Ставлю точку останова, смотрю НаборЗаписейЧерный. Набор наполнен записями, да только НомерСтроки у всех 0.

Поэтом делаю НаборЗаписейЧерный.Записать();

И получаю:
Ошибка при вызове метода контекста (Записать)
    НаборЗаписейЧерный.Записать();
по причине:
Запись с такими ключевыми полями существует! : ЧерныйСписок (Регистр сведений: Черный список)

Как мне победить этот номер строки?
1 Armando
 
22.06.14
01:11
>>одним ресурсом "Контрагент"
и без измрений да?
2 Бюро пиявок
 
22.06.14
01:13
(1) Без. Это просто список. Так нельзя?
3 mdocs
 
22.06.14
01:18
Какой то ночной кошмар.
4 Бюро пиявок
 
22.06.14
01:20
Разобрался. Ресурс перевел в измерение.
5 mistеr
 
22.06.14
02:37
>и наполнил его *наименованиями* контрагентов.

Надеюсь это тоже была шутка.
6 КонецЦикла
 
22.06.14
02:40
Да вообще жпо с этими регистрами
Сцуко каменный век с деревянными дубинами при наличии SQL Server 2008, 2012
7 Лефмихалыч
 
22.06.14
02:44
(6) почему жпо и каменный век?
8 КонецЦикла
 
22.06.14
02:53
(7) Ну как-то калечно...
Можно было бы включать режим "да, я осознаю всю опасность" и давать вставлять, апдейтить, удалять записи запросами в штатном режиме. Ну это как минимум для серьезных систем.
1С по-прежнему остается системой для ларьков...
9 Лефмихалыч
 
22.06.14
03:13
(8) как человек, ежедневно смотрящий в код весьма серьезных систем и в глаза авторов этого кода, ответственно заявляю: NNNOOOOOOOO!!!!!!.....
10 Armando
 
22.06.14
03:38
Ну хотя бы не прямо в sql писать, а сделали бы объект типа регистра сведений, только тупо табличка с реквизитами. Без всяких контролей уникальности, лишних индексов, чтоб набор записей записать можно было.
11 Мимохожий Однако
 
22.06.14
08:06
Достаточно сделать форму для справочника с использованием дополнительного реквизита типа Булево...Да и форма не обязательна.
12 Defender aka LINN
 
22.06.14
10:55
(8) Подключайся через АДО и куярь что угодно в базе, в чем проблема-то?
13 APXi
 
22.06.14
11:15
И будут запросы на изменения данных как в ЗУПе на выборку.
14 User_Agronom
 
22.06.14
11:35
(0) Регистр сведений можно рассматривать как функцию, которая набору аргументов (измерений) ставит в соответствие значение функции (набор ресурсов). Ну так вот: функция может возвращать пустое или неопределённое значение, а иметь набор неопределённых аргументов не может.
Кстати, если бы регистр сведений был бы периодическим или подчинённым регистратору, то измерения у него были бы. Но это явно не тот случай.
(10) А чем просто РС не устраивает? Или, например, Справочник?
Разреши наименованиям повторяться, а уникальный код один хрен сам генерится.
15 mistеr
 
22.06.14
11:51
(8) Ага, сертификат "1С:Специалист по прямым запросам". И ключики отдельные, именные, включающие этот режим.
16 КонецЦикла
 
22.06.14
15:47
(12) Почему штатно нельзя? И уж как-то можно было отойти от "построчной записи" у себя в кишках... 21-й век как-никак.
Ошибка? Это не ошибка, это системная функция.