#0
by User_Agronom
Вопрос глупый. Но, тем не менее ответа не знаю/не нашёл. Есть непериодический, независимый Регистр сведений. Одно измерение объект (ДокументСсылка) и пара ресурсов (строки) Мне нужно одной операцией добавить в этот регистр несколько записей. Вариант: НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей; НаборЗаписей.Отбор.Объект.Установить(ПолеВводаНоменклатура); не устраивает, так как нельзя установить отбор (у записей разные измерения). Вариант: не устраивает, так как пишет по одному. Почему нужно оптом: есть регламентное задание, которое должно подцепить все документы. И вариант, когда часть запишется, а часть нет не годится.
#4
by User_Agronom
Не катит. Если выполнить запрос во время выполнения цикла, то инфа про первые строки в запрос попадает. Чего я делаю не так?
#6
by Timon1405
нужно внимательно в прочитать строчку Прочитать или почитать про прочитать. или прочитать где почитать про прочитать
#9
by happysan
"Если выполнить запрос во время выполнения цикла, то инфа про первые строки в запрос попадает." - что ты имеешь в виду?
#10
by User_Agronom
Если нет отбора будут прочитаны все записи регистра. А потом, при Записать будут все перезаписаны. С точки зрения скорости не совсем правильно. Я пример привёл в Запускаем отладчик. Ставим точку прерывания внутри цикла. Несколько раз проходим цикл. Например в таблице 10 записей, а мы цикл проходим 3 раза. Запускаем ещё раз 1С предприятие. ваяем запрос к регистру. Эти три строчки в результате запроса видим. Должно быть: либо видим все десять. Либо не одной.
#18
by Крошка Ру
+ Регистр сведений, независимый, отборы ставить необязательно. Создаем, заполняем(хоть каждую запись по своему измерению) и записываем.
#19
by ShoGUN
+ Единственное что - надо тогда дубли перед записью проверять, т.к. иначе ошибка может вывалится.
#22
by Крошка Ру
Ну это да, тут дополнительную проверку надо Обыкновенные. Когда совпадают все измерения.
#23
by ShoGUN
В РС есть какие-то записи. Делаешь свой набор, в котором ВНЕЗАПНО встречается запись, в которой тот же набор значений измерений, который уже есть в регистре. Пишешь через НаборЗаписей.Записать(Ложь) Имеешь ошибку.
#24
by D_E_S_131
Зачем тогда ставить ЛОЖЬ? Кстати в у него не установлен параметр Замещать = Ложь (т.е. он равен Истина)
#25
by ShoGUN
Ему надо все записи записать одновременно. Либо сделать так, чтобы не было фантомного чтения.
#27
by D_E_S_131
И как параметр "Замещать" может помочь в этом деле? Только транзакция или управляемая блокировка (в зависимости от режима управления блокировкой данных).
#29
by ShoGUN
Набор записей пишется в SERIALIZABLE, если не ошибаюсь(поправь, если не так). А это как раз то, что нужно.
#30
by D_E_S_131
Если натыкается на уже имеющиеся записи с такими измерениями, то не останавливается с сообщением "Не удалось записать по причине:"? НаборЗаписей это всего лишь инструмент для удобства. По сути та же запись в транзакции нескольких ЗаписейРегистра.
#31
by ShoGUN
>По сути та же запись в транзакции нескольких ЗаписейРегистра. Спасибо, кэп. Вопрос в уровне изоляции этой транзакции.
#32
by D_E_S_131
Хочешь сказать, что в режиме Управляемых блокировок, если я буду писать данные НаборомЗаписей и не установлю саму блокировку на записываемые данные, то я не получу возможность "грязного чтения" до окончания записи?
#34
by ShoGUN
Опять же у ни слова про блокировки, может у него на регистре блокировки в автоматическом режиме.
#35
by D_E_S_131
Судя по примеру в у него таки Управляемые блокировки. Но в не утверждается "что это так", т.к. он останавливает в цикле при записи через МенеджерЗаписи. Если бы писал НаборомЗаписей, то у него и цикла никакого не было бы. В любом случае, если в конфигурации УБ, то для защиты от "грязного чтения" нужно использовать установку УБ.
#36
by D_E_S_131
Тогда пусть ставит транзакцию, считывает запросом имеющиеся данные с использованием "Для изменения" и уже потом пишет свои новые данные. Другого в 1С не придумано.
#39
by ShoGUN
>В любом случае, если в конфигурации УБ, то для защиты от "грязного чтения" нужно использовать установку УБ. Ещё раз спасибо, кэп :) Я неточно выразился. Но каким-то образом у него при грязное чтение, а при записи набором - нет.
#43
by D_E_S_131
Вот и мне интересно как он это проверил. Так же интересно, что будет с "внезапно одинаковыми" записями при таком способе.
#44
by ShoGUN
Используй принудительную блокировку в коде, иначе, при записи большого набора - всё равно получишь грязное чтение. А своим способом ты это не проверишь никак.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как добавить дополнительные группы строк в баланс? 1С Налогоплательщик...
- Обнуляются записи в регистре сведений при добавлении новой записи
- Вставляю ТЗ на форму, как добавить иконки Добавить строку, изменить
- Свойства НОВОЙ записи при копировании записи Регистра Сведений
- Как выбрать записи из регистра сведений записи
- Как программно добавить детальные записи в универсальном отчете
- Открытие формы записи для новой записи регистра сведений с установленным полем.
- Как сделать кнопку добавить с помощью, которой можно добавить номенклатуру
- Создал регистр сведений. Не могу добавить Форму записи - не активна. Почему?
- Как на форму "Произвольная" добавить кнопку "Добавить"
- СКД - Добавить набор данных объект - Добавить поле "вложенный набор данных"
- Добавить записи в регистр сведений
В этой группе 1С
- Заполнение табеля учета рабочего времени 1С УПП 1.3.
- Обмен мобильного приложения с базой 1с
- Таблица не найдена "Справочник.Контрагенты"
- Программно установить значение полнотекстового поиска 8.2
- Построение дерева из справочника
- Прошу помощи: вывод таблицы значений через СКД
- 1с не запускается без интернета
- БП 3.0. Вызов печатной формы из документа РеализацияТоваровИУслуг
- Как отключить контроль уникальности кода справочника номенклатура?
- v7: Перенос Бухгалтерии 7.7 в Бухгалтерию 2.0
- Ошибка "Неверные параметры" при использовании временной таблицы в запросе
- ШТРИХ-МИНИ-ФР-К сделать принтер чеков
- Формы и привязка картинок 1С 8.3.
- Настройка печати расходной накладной
- Как в БП_2.0 сделать поступление на р/с, чтобы сумма учитывалась в "Доход ЕНВД"?
- Функция внешнего источника данных
- СКД и Шаблон внешнего отчёта с ИТС
- 1с ЗУП 2.5 НДФЛ При перерасчете зарплаты прошлого года, корректируется прошлый
- Работа с хранилищем значения в табличной части 8.3
- УТ 11 Передача в эксплуатацию - ошибка при проведении