v7: Элементарный перебор и программное изменение в 1с 7.7 #750591


#0 by EarthsSoul
У меня задача всем (и группам и элементам) элементам 1с 7.7 в справочнике Номенклатура добавить в наименование уникальное число. В семерке не писал так что по возможности без глумления… Я вот написал такую обработку : У меня выдает ошибку: СпрСотр.Наименование = СпрСотр.Наименование +" "+Итератор; {C:USERSDVDESKTOPИЗМЕНИТЬ НОМЕНКЛАТУРУ.ERT}: Изменено Наименование! Может быть нарушена последовательность выборки! Как исправить ошибку ? Или как решить задачу ?
#1 by HawkEye
использовать перед выборкой: Синтаксис: ПорядокКодов Назначение: Установить порядок выборки элементов справочника по возрастанию кода. Замечание: Метод вызывается до вызова метода ВыбратьЭлементы. Метод  можно использовать только для
#2 by EarthsSoul
Спасибо кажется работает
#3 by Медведик
Альтернативный вариант, если выбирать в порядке кодов неудобно - в первом цикле заносить ссылки на элементы в список значений. А вторым циклом получать ссылки из списка и их уже менять, не затрагивая порядок выборки.
#4 by EarthsSoul
на будущее приму во внимание Жду окончания обработки справочника ...
#5 by HawkEye
на будущее, чтобы не ждать - запускай изменения в транзакции по 200-300 элементов за одну транзакцию ))
#6 by mishaPH
Это имеет смысл если у него дбф
#7 by EarthsSoul
у меня файловая, я так понимаю дбф ... Да чет долго это делается А как тут правильно поставить транзакции ?
#8 by HawkEye
у него ДБФ
#9 by HawkEye
как-то так: начатьТранзакцию начинаешь свой цикл по изменению к = к + 1 если к = 300 тогда зафиксироватьтранзкцию начатьтранзакцию к = 0: конецесли конеццикла - заканчиваешь свой цикл зафиксироватьТранзакцию
#10 by EarthsSoul
У меня еще и "Код не уникальный!" и ничего не записалось...
#11 by EarthsSoul
сейчас закончу с транзакцией и выдам на суд ))
#12 by EarthsSoul
как то так ?
#13 by EarthsSoul
#14 by Остап Сулейманович
Не взлетит. Даже если научишься счетчик итераций сбрасывать в "0" после фиксации транзакции.
#15 by Остап Сулейманович
Все равно не взлетит.
#16 by EarthsSoul
вижу что толку нет, и ? Подскажешь что дальше ?
#17 by EarthsSoul
понимаю что логики в коде нет, так как её еще в голове нет ...
#18 by Остап Сулейманович
Это не восьмера. Вот здесь :
#19 by Остап Сулейманович
+ И эттта... Команду записи нужно давать ДО фиксации транзакции.
#20 by EarthsSoul
ну поправил только все равно не работает, а корректно сделаны ?
#21 by EarthsSoul
понял чет не то ))
#22 by Остап Сулейманович
#23 by EarthsSoul
Круто :), намного быстрее выдало результат :)
#24 by EarthsSoul
#25 by EarthsSoul
Спасибо
#26 by Остап Сулейманович
Увеличь край счетчика до (например) 3 000. Должно стать еще быстрее. Зависит от объема памяти, фрагментрированности диска для темпов ...
#27 by HawkEye
первую НачатьТранзакцию ; - перед циклом вынесите... что вы ее в каждом цикле начинаете?
#28 by EarthsSoul
да поправлю Блин уперся в другую проблему ...
#29 by HawkEye
мхатовская пауза )))
#30 by EarthsSoul
29 )))
#31 by EarthsSoul
В общем пишет " Код не уникальный!"
#32 by EarthsSoul
Я пытался решить через СпрСотр.УстановитьНовыйКод; Но он тогда вообще не отрабытвывает. Видимо потому что упорядоченно по коду и я его переприсваеваю.
#33 by HawkEye
раз пишет, то так оно и есть... )) вариант изменить код, не предлагать?
#34 by 1Сергей
сперва разберись с кодами, потом с наименованиями
#35 by HawkEye
используй вариант из выгрузи в ТЗ и там перебирай по ходу меняй что хочешь ))) зы. у кода еще префикс бывает...
#36 by EarthsSoul
да точно сделаю две обработки
#37 by EarthsSoul
знаю что можно поставить, просто мне то он не нужен... Или он обязательный технически ?
#38 by HawkEye
нет, не обязателен
#39 by EarthsSoul
Хотя ты прав в моем случае наверное нужен, ведь перенумирация это по сути. И что бы не пересекались можно с префиксом замутить.
#40 by EarthsSoul
Вернусь через час :)
#41 by Медведик
ТС, раз проблема с уникальностью кодов возникает... Делай предварительную перенумерацию из префикса, которого точно нет, например пронумеруй все с префиксом "уху" от 1 до n. А вторым заходом нумеруй уже со своим стандартным.
#42 by Злопчинский
Остап Сулейманович, что ж ты регулярно фигню несешь? И новичков в заблуждение вводишь? . против использования СокрЛП(СпрН.Наименование) - ничего не имею, не повредит, но вообщем есть особенность: дарю тебе "гениальный" код (хорошо бы проверить на скуле, на дбф работает):
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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