Имя: Пароль:
1C
1С v8
Добавить записи в регистр сведений
0 Lolipop
 
27.01.16
18:26
Добрый вечер.
Есть регистр "Лицевые счета контрагентов", который заполняется данными вручную, по кнопке добавить.
Встала задача, перенести лицевые счета из справочника контрагенты в этот регистр.
К данным обращаюсь, все ок, но через "Создатьнаборзаписей()" не работает.
Как добавить в такой регистр записи?
1 Tatitutu
 
27.01.16
18:30
(0)Независимый ?
2 HardBall
 
27.01.16
18:55
(0) Да ладно.
(1) Вручную добавляют
3 Cyberhawk
 
27.01.16
19:02
"через "Создатьнаборзаписей()" не работает" // Показывай на картинке это твое "не работает"
4 Lolipop
 
28.01.16
09:27
(1) Независимый - нет связанных документов
5 cw014
 
28.01.16
09:43
(3) Легко:
РегистрСведений.ЛицевыеСчетаКонтрагентов.СоздатьНаборЗаписей()

Не работает, пусто
))))
6 ДенисЧ
 
28.01.16
09:45
(5) А установить отбор и прочитать() не пробовал?
7 Timon1405
 
28.01.16
09:46
(0)
РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
СоздатьМенеджерЗаписи (CreateRecordManager)
Синтаксис:

СоздатьМенеджерЗаписи()
Возвращаемое значение:

Тип: РегистрСведенийМенеджерЗаписи.

Описание:

Создает объект для управления записью регистра сведений.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Пример:

Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
8 Lolipop
 
28.01.16
09:55
(6) Не могу понять, что пихать в отбор, чтобы не затерлись все записи.
3 измерения:
Организация, банк, Физлицо.
1 ресурс:
НомерЛицевогоСчета
9 ДенисЧ
 
28.01.16
09:57
(8) Добавляй уникальные поля...
10 Lolipop
 
28.01.16
10:20
(9) Выборка =  Справочники.Контрагенты.Выбрать();
ВыборкаРегистра = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.СоздатьНаборЗаписей();
ВыборкаРегистра.Отбор.Организация.Установить(Справочники.Организации.НайтиПоНаименованию("123"));
ВыборкаРегистра.Прочитать();

Пока Выборка.Следующий() Цикл
    Если Выборка.Родитель.Наименование =  "Сотрудники" Тогда
                Если Перемен < 2 Тогда
        НоваяЗапись = ВыборкаРегистра.Добавить();
        НоваяЗапись.ФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.Наименование);
        НоваяЗапись.Банк = Выборка.ОсновнойБанковскийСчет.Банк;
        НоваяЗапись.НомерЛицевогоСчета =  Выборка.ОсновнойБанковскийСчет.НомерСчета;
        Прервать;
        Перемен= Перемен + 1;
    Иначе Прервать;
        КонецЕсли;
    КонецЕсли;
            
    КонецЦикла;    
ВыборкаРегистра.Записать(Истина);



{Форма.Форма.Форма(24)}: Ошибка при вызове метода контекста (Записать)
ВыборкаРегистра.Записать(Истина);    
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: ЛицевыеСчетаРаботниковОрганизации: , ,  (Регистр сведений: Лицевые счета сотрудников организации; Номер строки: 1; Поле: Организация)
11 Alex S D
 
28.01.16
10:22
новаяЗапись.Организация = Организация;
12 Lolipop
 
28.01.16
10:28
(11)
Процедура КнопкаВыполнитьНажатие(Кнопка)
Перемен = 0;

Выборка =  Справочники.Контрагенты.Выбрать();
ВыборкаРегистра = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.СоздатьНаборЗаписей();
ВыборкаРегистра.Отбор.Организация.Установить(Справочники.Организации.НайтиПоНаименованию("ООО ""ТКС-Холдинг"""));
ВыборкаРегистра.Прочитать();

Пока Выборка.Следующий() Цикл
    Если Выборка.Родитель.Наименование =  "Сотрудники" Тогда
    Если Перемен < 2 Тогда
        НоваяЗапись = ВыборкаРегистра.Добавить();
        НоваяЗапись.ФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.Наименование);
        НоваяЗапись.Банк = Выборка.ОсновнойБанковскийСчет.Банк;
        НоваяЗапись.Организация = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(Выборка.Наименование).Организация;
        НоваяЗапись.НомерЛицевогоСчета =  Выборка.ОсновнойБанковскийСчет.НомерСчета;
        Перемен= Перемен + 1;
    Иначе Прервать;
        КонецЕсли;
    КонецЕсли;
            
    КонецЦикла;    
ВыборкаРегистра.Записать(Истина);    
КонецПроцедуры


{Форма.Форма.Форма(24)}: Ошибка при вызове метода контекста (Записать)
ВыборкаРегистра.Записать(Истина);    
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: ЛицевыеСчетаРаботниковОрганизации: , ,  (Регистр сведений: Лицевые счета сотрудников организации; Номер строки: 1; Поле: Организация)
13 Рэйв
 
28.01.16
10:32
(12)Не ту организацию ты пихпешь.Если у тебя там вообще не пустая ссылка...

Нахрена тебе поиск по наименованию? Сделай реквизитом на форме и не мучайся
14 Рэйв
 
28.01.16
10:33
и вообще в отборе ищешь по одному - в присваивании по другому,а потом удивляешься что у тебя не совпадает...
15 Фрэнки
 
28.01.16
10:56
через менеджер записи регистра сведений сделать и не париться. Если есть желание повысить быстродействие, то воткнуть этот кусок внутрь транзакции, т.е. открывать и закрывать транзакцию в коде обработки явным образом.