#0
by Domovoi
Есть регистр сведений переодический. Измерения Номенклатура. Нужно установить отбор номенклатуры входящей в список СПНоменклатура. Как это сделать не запросом? НаборЗаписей.Отбор.Номенклатура.ВидСравнения = ВидСравнения.ВСписке; выдает ошибку что недопустимый вид сравнения.
#3
by Живой Ископаемый
Почему бы не поставить условие: только левой рукой, и только мышью, не трогая клавиатуры?
#5
by Живой Ископаемый
2 точно "И во-вторых, запросом придется лопатить весь регистр. " - э... раскройте тему, а я таки подскажу способ в ответ
#6
by Domovoi
Насколько я знаю, запросом выбираем из регистра все что нужно оставить без изменения, выгружаем результат запроса в набор записсей и добавляем туда то что собираемся изменить и записываем набор записей. А хотелось бы сделать отбор по списку номенклатуры, думаю так было бы быстрее.
#7
by Domovoi
+Получается в списке к примеру 5 записей, а данный алгоритмом колбасит несколько секунд, а должен как бы мгновенно.
#9
by Живой Ископаемый
"Насколько я знаю, запросом выбираем из регистра все что нужно оставить без изменения, выгружаем результат запроса в набор записсей и добавляем туда то что собираемся изменить и записываем набор записей."- ничего не понятно зачем вы это делаете, впрочем плевать... Можно сделать через ПостроительЗапроса к списку. для Списка можно устанавливать отборы и не только на равентсво.
#12
by Reset
К . Нельзя установить отбор по списку. Тебе придется или переписывать весь регистр целиком, как в (что является бредом), либо писать итерациями по одной номенклатуре.
#14
by Живой Ископаемый
2 я уже понял что он хочет ересь а все потому что неправильно мыслит.. дальше вникать не хочу.. если ему сильно нужно - пусть грызет если это хоть как-то подходит.. если нет - начит нет
#15
by Domovoi
Наоборот хочу вникать. Задача бональная. Есть список номенклатуры, ей установлен статус на опеределенную дату надо эти данные загнать в регистр. Измерения регистра - Номенклатура, Значение - Статус. Регистр периодический. Как надо сделать тогда? писать итерациями по одной номенклатуре - это как?
#18
by Живой Ископаемый
потому что для периодического независимого РС набор записей - это одна запись, которая определяется уникальным сочетанием всех измерений (в твоем случае Номенклатура и Период)
#24
by rozer76
да.. сорри не увидел "НаборЗаписей.Отбор.Номенклатура.Установить(ТекСтрока.Номенклатура)"
#26
by Domovoi
Да вроде пробовал не получилось, хотя странно вроде должно работать. Не, ты что) Мне б за годика 2 еще пройти)
#28
by Живой Ископаемый
регистр сведений независимый - стало быть в твоем наборе записей может быть максимум одна запись. понятно почему
#34
by Reset
А вообще для приведенного примера набор не нужен, через менеджер записи все можно делать
#35
by Domovoi
+Я ошибся. Не перезапустил обработку. Не сработало если после цикла. А должно сработать?
#37
by Domovoi
Через запрос 55700 записей в списке обработало за 20 сек. Через итерации, если наборЗаписей.Записать в цикле то счет на минут идет. Если НаборЗаписей.Записать вне цикла, то ошибка, можетя не так чтото делаю. Какой еще вариант есть?
#39
by Domovoi
Ну не подсказываете, скажите хоть что почитать. А то через запрос говорите фигня, а как надо делать - молчите.
#41
by lxs
"Если НаборЗаписей.Записать вне цикла, то ошибка" - ты хоть немного соображаешь, что делаешь? И кстати, в тебе дали дельный совет.
#42
by Reset
а) Либо ты что-то не так делаешь, но умалчиваешь. б) Если Количество номенклатур в твоем списке достаточно велико, то оно вполне может отрабатывать долго в) Ты умолчал о каком-то упрощающем условии. Например, в таблице СписокНоменклатуры заведомо полный список на дату ДатаОтбора. Тогда в наборе вооще не надо устанавливать отбор по номенклатуре. г) Хз.
#43
by Reset
Попробуй (код не проверен, безошибочность работы НЕ ГАРАНТИРУЮ, в т.ч. синтаксическую) Если будет работать медленно, тогда нужно менять смысл темы на "Как оптимизировать запись в РС", указав сопутствующую информацию для размышления (коей сейчас явно недостаточно)
#44
by Domovoi
И что получится? Что то дельность его не видна только. а)Зачем мне умалчивать? Я не вас тут собрался подсикать на незнании, а мне самому надо узнать и научится, да и сделать побыстрее, смысл мне тянуть кота за хвост? б)НУ я не спорю, просто сказали что способ через запрос не правильный был, вот я и хочу научится правильному. в)Я все сказал, список произвольный, но на одну дату, но элементы не все могут быть на эту дату. г)Вот и я хз.
#49
by Domovoi
Да. В регистре может быть все) Я делаю обработку для изменения статустность номенклатуру на выбранную дату. Т.е. накидываю список номенклатуры ставлю дату и выбираю какой статус поставить, нажимаю применить, должны изменится или добавиться записи имеющие номенклатуру из списка и период равый выбранной дате.
#50
by 73
+ Исправлюсь: В регистре(до записи) могут быть записи по другой номенклатуре на эту же дату?
#54
by Reset
Тогда, возможно, нужно исходить из соотношения количества изменяемых записей за день к количеству неизменяемых. Если количество вторых сравнимо с первыми, тогда быстрее будет писать сразу весь набор за день (читаем набор - меняем нужные строки - пишем). Кроме того, если количество записей в твоей таблице изменений велико (55700 - это что?), такой вариант будет быстрее в любом случае. Сколько записей в регистре за день в среднем? Сколько строк в списокНоменклатуры в среднем?
#55
by Domovoi
Это номенклатура, завели и забыли) Изменения происходят, статус показывает: снят с производства, в производстве, акция, распродажа. Меняется он редко. Через запрос, в любом случае 20 сек делает, а через другие методы при небольшом колве в списке номенклатуры делается быстрее, ну при большом - очень долго. Вот я и хотел найти способ универсальный, а так получается нужно наверно два способа использовать в зависимости от количества изменяемых записей.
#56
by 73
Еще вопрос: В регистре(до записи) могут быть записи по номенклатуре из списка на эту же дату?
#60
by Reset
Примерно так. Только запрос не нужен опять же, НаборЗаписей.Прочитать ничуть не хуже :)
#61
by Domovoi
Спасибо.Правда я через запрос, тоже самое делаю,только проверю что быстрее. На будущее буду знать. Всмысле? А что мы получим через Прочитать?
#62
by 73
Только СписокНоменклатуры проверь в отборе построителя. Там список значений нужен. А у тебя похоже - таблица значений...
#63
by Reset
Получим то, что есть сейчас в регистре (что ты, видимо, запросом делаешь). См пример в :)
#65
by Domovoi
При большом количестве изменяемых записей, получается очень долго. Но есть промежуток где этот метод выгоднее остальных, но это надо уже исследовать. Вообщем опыта набрался, всем спасибо, если есть еще методы напишите, буду рад узнать.
#66
by Reset
Тогда кстати вариант развить идею и получать запросом сразу готовую к записи таблицу: В запрос передаем ТаблицуИзменений, там помещаем ее во временную таблицу, которую соединяем (полным соединением по номенклатуре)со срезом на заданный период, по ГДЕ фильтруем чтобы состояние было различно в таблицах и возвращаем 1) состояние из временной в приоритете 2) состояние из регистра, если во временной значение NULL Полученную таблицу заносим в пустой набор и пишем. Все, ушел пить пиво по поводу ДР)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Количество измерений в регистре сведений?
- Как сделать отбор в форме списка справочника?
- Как сделать отбор в форме списка по реквизиту табличной части?
- Отбор в непериодическом регистре сведений: программно и интерактивно
- Как получить Уникальный Идентификатор для записи в регистре сведений
- v7: Как в регистре сведений сделать замещение данных.
- Как сделать печатную форму списка справочника с учетом условия из списка значений?
- Как программно отменить отбор в регистре сведений?
- Отбор в регистре сведений. Виды сравнения
- Как сделать вывод списка выбора значений при нажатии на гиперссылку на форме под
- УФ. Как в табличной части документа сделать отбор по списку значений?
- Как сделать отбор по регистру сведений?
В этой группе 1С
- 8.2 права на редактирование реквизитов объектов
- Склонение фамилии - ЗУП 8.1
- УТ 11 : Схема оформления уценки товаров у клиента ?
- Форма Т-2 в ЗУП
- Теряются параметры сеанса
- Программно определить регламентное задание
- NAT, два провайдера и отказоустойчивость
- v8: СКД - можно ли сформировать запрос к внешней таблице значений?
- Как запретить снимать и ставить пометку на удаление
- УПП Инвентаризация принятых/отданных в переработку материалов
- У кого работают два баркод-сканера на одном компе в одном сеансе 1с?
- УТ: Групповая обработка справочников и документов
- (ЗУП) Привязка сотрудника к физ.лицу
- Отчет по статьям движения денежных средств
- Вылет 1С на методе "ВвестиДату".
- флаг выбора на форме списка справочника
- Как получить номер счёта из ЕПСБУ
- Искажаются формы при работе в разных разрешениях
- ЗиК 7.7: где районный коэфф. на МРОТ при больничном?
- Подскажите пожалуйста,где находятся языковые настройки в программе ACDsee Pro 4.