Заполнение регистра сведений из таблицы значений #753815


#0 by Wefast
Есть таблица значений с штрихкодами и кодами номенклатуры. Мне нужно все это записать в регистры сведений ШтрихкодыНоменклатуры. В нем одно измерение и это Штрихкод Ну и в итоге в какой то момент появляется ошибка о существование такой записи и ничего не записывается. Разве он не заменит при этом новой записью все то что попало в набор после отбора? В общем теперь у меня огромный реристр. Как мне туда добавить все что не добавилось? без перезаписывания. Или может можно как то всю ТЗ сразу загрузить? Или может нужно использовать МенеджерЗаписи раз уж я по одной строке за раз записываю? А вдруг тогда по отбору будет больше 1 записи
#1 by vicof
Сначала сверни таблицу, потом добавляй записи
#2 by AlexToo
я бы вынес из цикла Набор.Записать(истина) т.е. записал бы весь набор, а не по одной строке, да и тз лучше сверни, и можно проверку добавить на наличие штрихкода.
#3 by lxndr
#4 by Wefast
а Очистить добавлять? Для чего сворачивать?
#5 by vicof
Как ты думаешь, почему появляется ошибка?
#6 by Wefast
Ну видимо в ТЗ есть дубль. Но при отборе она должна туда попадать и подменяться текущей строкой. И если вынести Записать за цикл точно будет работать? Что то как то странно
#7 by vicof
Теперь перечитываем Точно.
#8 by Wefast
Строки в ТЗ уникальны а вот штрихкоды повторяются. В старом регистры было больше одного измерения и такое было возможно. Тут - нет.
#9 by Wefast
И почему отбор не работает при этом как нужно?
#10 by Timon1405
я просто оставлю это здесь РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) Загрузить (Load) Синтаксис: Загрузить(<ТаблицаЗначений>) Параметры: Тип: ТаблицаЗначений. Таблица значений, по которой производится заполнение набора записей. Описание: Загружает набор записей значениями из переданной таблицы значений. При этом все прежние записи набора удаляются. Заполняются значения доступных для записи свойств записей регистра сведений, имена которых совпали c именами колонок таблицы значений. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
#11 by vicof
Ну и? Алгоритм как преобразовать один регистр в другой за тебя никто придумывать не будет.
#12 by Зеленый пень
"В нем одно измерение и это Штрихкод" - это плохо, товары с несколькими ШК - обычное дело.
#13 by Wefast
Я спросил что не так с отбором. Он же должен брать из заполняемого регистра все записи с этим штрихкодом. И стирать их при добавление новой записи.
#14 by Wefast
У меня в ТЗ не ссылка на номенклатуру а ее код, так что не получится
#15 by vicof
Эмм. У тебя не может быть более одной записи с одним и тем же штрихкодом.
#16 by Wefast
На первой итерации цикла записалась в регистр строка. На n-ой итерации попадается строка с таким же штрихкодом. Она отбирается по отбору. Она подменяется строкой из итерации Так должен работать этот отбор
#17 by Timon1405
таб в запрос - добавить справочник номенклатура - заполнить колонку, соединив по коду(без языческих найтипокоду) - выгрузить, выкинув код и нуллы, -загрузить в регистр.
#18 by Defender aka LINN
"Так должен работать этот отбор" В "Набор.Прочитать;". Не должен.
#19 by IlyaSR
Сделать запись через ПОПЫТКА, вывести ошибку и проанализировать, явно таких ошибок будет несколько и Записать(ИСТИНА) избыточные данные... Записать => Значение по умолчанию: Истина
#20 by IlyaSR
И для чего найденный штрихкод перезаписывать? или штрихкод как-то цикличен и может присваиваться разным номенклатурам?
#21 by Wefast
Вот взял какой то пример из обучающего материала Идет отбор, потом идет Прочитать, потом идет добавление новых записей. Потом записать. И написано, что удаляться все записи что попали после отбороа и запишутся только что добавленные В регистре Штрихкод единственное измерение, т.е. дублироваться не может. А выгружаю я с уже дублирующимися элементами. В общем не найдя ничего конкретного пытаюсь при выгрузке из старой базы удалить все дубли.
#22 by Зеленый пень
Тебе уже 2 раза написали - убери .Прочитать "И написано, что удаляться все записи что попали после отбороа и запишутся только что добавленные" - и те, что были записаны ранее тоже останутся, т.к. ты их "прочитал".
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С