Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Не создаётся уникальный код справочника

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

te10l

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
P.S.3 Ой, новую тему создал, дурак, модераторы, плиз, удалите или переместите
 
Привет, население!
У многих есть проблемка в 1С7: при вводе нового «элемента справочника» не ставит автоматически новый «код элемента» и стандартная функция «УстановитьНовыйКод(<Префикс>)» не помогает.
Можно тип кода поменять со строкового на числовой, но это не правильный костыль, т.к. раз – нарушается «контроль уникальности», двас – если к коду уже где-то что-то привязано, то хана.
Конечно кто-то это уже делал, я просто предлагаю свой вариант, может кому надо:
В модуле «элемента» добавляем:
В шапке:
Перем НовыйКод_Н; //--// для скорости
Процедура ПроверитьНовыйКод(НовыйКод,ВидСпр) Далее
В теле:
Процедура ПроверитьНовыйКод(НовыйКод,ВидСпр) //--//
    Спр=СоздатьОбъект("Справочник."+ВидСпр);
    Если Спр.НайтиПоКоду(НовыйКод)=1 Тогда
            НовыйКод_Н=Число(НовыйКод_Н)+1;
            Пока СтрДлина(НовыйКод_Н)<9 Цикл
                НовыйКод_Н="0"+НовыйКод_Н;
            КонецЦикла;
        Если Спр.НайтиПоКоду(НовыйКод_Н)=1 Тогда
            НовыйКод_Н=Число(НовыйКод_Н)+1;
            Пока СтрДлина(НовыйКод_Н)<9 Цикл
                НовыйКод_Н="0"+НовыйКод_Н;
            КонецЦикла;
            ПроверитьНовыйКод(НовыйКод_Н,ВидСпр);
        Иначе
            Код=НовыйКод_Н;
            СохранитьЗначение("НовыйКод_Н",НовыйКод_Н);
        КонецЕсли;
    Иначе
        Код=НовыйКод;
        СохранитьЗначение("НовыйКод_Н",НовыйКод);
    КонецЕсли;
КонецПроцедуры //ПроверитьНовыйКод
 
Процедура ВводНового(Копирование)
    НовыйКод_Н=ВосстановитьЗначение("НовыйКод_Н");
    ПроверитьНовыйКод(Код,"Номенклатура");
 
    Новый = 1;
 
P.S. это для «Номенклатура» с длиной кода 9
P.S.2 это только для тех, кто правит стандартные конфигураци

Всего записей: 12 | Зарегистр. 26-01-2012 | Отправлено: 19:08 08-08-2022 | Исправлено: te10l, 19:13 08-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
te10l
есть же тема - 1С Программирование и поддержка (1C)

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 19:10 08-08-2022
te10l

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я, не посмотрел, что новую тему создал, каюсь

Всего записей: 12 | Зарегистр. 26-01-2012 | Отправлено: 19:16 08-08-2022
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Не создаётся уникальный код справочника


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru