Имя: Пароль:
1C
1С v8
Программная запись в регистр сведений
0 Puass0n236
 
22.04.19
22:34
Добрый день!
Мне необходимо в регистр сведений программно записать информацию.
Я только учусь программировать,поэтому надеюсь на помощь.
Я пробовал вот так:

&НаСервере
Процедура КакСоздатьЗаписиБезПривязкиКДокументуНаСервере()

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

  НовЗапись = НаборЗаписей.Добавить();
  НовЗапись.Период = "20190421";
  НовЗапись.Валюта = Доллар;
  НовЗапись.Курс = 57;
  НовЗапись.Кратность = 1;

  НаборЗаписей.Записать(Истина);


КонецПроцедуры

и вот так

НаборЗаписей = РегистрыСведений.КурсВалют.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("Доллар");
НаборЗаписей.Отбор.Валюта.Установить(Доллар);
НаборЗаписей.Отбор.Период.Установить("20190421");
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество()=0 Тогда
    НовЗапись = НаборЗаписей.Добавить();
    НовЗапись.Период = "20190421";
    НовЗапись.Валюта = Доллар;
Иначе  НовЗапись = НаборЗаписей[0];

КонецЕсли;
НовЗапись.Курс = 57;
НовЗапись.Кратность = 1;

НаборЗаписей.Записать(Истина);


и кучу других похожих вариантов, но зайдя в пользовательском режиме новых записей,да и вообще любых записей не появляется.
Подскажите, что я делаю неправильно
1 palsergeich
 
22.04.19
22:39
Если это периодический регистр сведений с одним измерением - валюта, то код написан верно оба варианта.
Ты после добавления записей список обновлял? ну там ф5 нажать
2 palsergeich
 
22.04.19
22:45
Там еще может быть загвоздка с установленным фильтром на форме списка, попробуй проверить наличие записей через консоль запросов
3 OldCondom
 
22.04.19
22:50
Убери прочитать() и отбор по периоду
4 Успехов
 
22.04.19
22:50
(1) 1С научилась автоматически из любого формата строку в дату преобразовывать?
5 OldCondom
 
22.04.19
22:51
И за одно опредедись, ты собираешься изменять запись или добавлять. Во втором случае подойдет менеджер записи, а не набора записи.
Смотри тут: https://its.1c.ru/db/metod8dev/content/2486/hdoc
6 OldCondom
 
22.04.19
22:52
(4) + 100))
7 palsergeich
 
22.04.19
22:55
(4) это привело бы к окну с ошибкой что поле период не заполнено, думаю, что просто издержки копипасиы на форум, а в коде нормальные одиночные кавычки.
(3) если убрать отбор по периоду затрутся все остальные записи по этой валюте.
Для учебных целей код нормальный.
8 Успехов
 
22.04.19
23:00
(7) Всё равно, даже если так, неявные преобразования - зло. Есть специальные функции для этого.
9 palsergeich
 
22.04.19
23:01
(8) Одиночная кавычка это не неявное преобразование, а запись даты как литерала.
10 palsergeich
 
22.04.19
23:17
Ну я по крайней мере надеюсь что товарищ топикстартер дату то записал правильно и красной ошибки у него нет)
11 singlych
 
23.04.19
00:02
(4) внезапно это работает
12 palsergeich
 
23.04.19
00:08
(11) Да было ясно с самого начала, что работает, или ошибки копипаста, или неявное преобразование, ибо если бы этого не случилось, то окно с надписью поле период незаполнено пищу для размышлений бы дало.
13 Успехов
 
23.04.19
05:57
(11) И это очень плохо, на самом деле. Источник трудноуловимых ошибок. Никогда так не делаю, абсолютно никаких плюсов в такой записи нет.
Ошибка? Это не ошибка, это системная функция.