1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Уменьшение номера документа

Тема в разделе "Базы данных и администрирование", создана пользователем -, 5 май 2010.

  1. Гость

    Репутация:
    0
    1с Бухгалтерия 8

    Номер документов имеет вид: А0510/00001
    А префикс, 05 месяц, 10 год.. дальше номер.
    Необходимо сделать чтоб номер имел не 5 цифр, а три, то есть:
    А0510/001
    Зачем? Требования начальства.

    Пробовала создать новый номер в ручную и тогда дальше по сути должны аналогично задавать такие же номера, но тогда с наступлением нового месяца формат номера становится пятизначным...

    Что изменить необходимо или как это решить?
     
  2. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Можно в конфигураторе укоротить поле "Номер". а в обработчике "ПриУстановкеНовогоНомера" написать как надо формировать новый номер. Или руками постоянно изменять номер. В первом и во втором случае надо помнить, что если есть у документа нумератор, то номера собьются у всех документов подчиненных регистратору.
     
  3. Гость

    Репутация:
    0
    В конфигураторе укоротить поле номер, это длину?
    А тогда не у всех ли документов изменится номер? думаю это повлияет на предыдущие документы...

    Способ руками не подходит =(
     
  4. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Само собой повлияет, т.к. единый объект метаданных.другой путь - набить пробелов в начале (перед префиксом). Должно помочь. В противном случае, без вмешательства в длину номера не обойтись. потому как у вас радикальное изменение нумерации. Если увеличение - проблем нет (добавляются лидирующие нуль), а у вас уменьшение номера происходит.
     
  5. Hryv

    Hryv Гость

    Репутация:
    0
    1. Как формировался номер вида А0510/00001 для уже созданных документов? Программой или руками?
    2. Вы хотите перенумеровать уже существующие докуметы? Или(и?) чтобы новые нумеровались по новому правилу?


    Добавлено:
    а что в 1С 8 все так запущено? если длина номера 5, то нельзя создать док с номером 3, а только с номером 00003? или " 3"?
     
  6. Гость

    Репутация:
    0
    1. Программно через подписку

    2. Хочу чтоб новые нумеровались по новому правилу.
     
  7. Hryv

    Hryv Гость

    Репутация:
    0
    Я с 1С 8 плохо знаком, но аж самому стало интересно, что за проблема такая
    Для 7.7 - это как будто на пустом месте проблема
    Дома вечером полистаю книжку по 1С 8, утром отпишу что найду
     
  8. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Через подписку можно, если вы описали программно как сформировать номер, и этот программный код внесен не в модуль формы, а в глобальный обработчик в модуле объекта (ОбработкаЗаполнения, ПриЗаписи, ПослеЗаписи и т.п.)
     
  9. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    1. Без программного кода "Как формировался номер вида..."- гадание на кофейной гуще, могу только предположить следующий способ:

    Если бы я разрабатывал нумерацию, я бы руки человека не пустил бы в номер ИМХО.

    Код:
    Префикс = "А" + Формат(ТекущаяДата(), "ДФ=MMyy");
    Номер = Префикс + "/" + Номер;
    2. Если уменьшать длину номера с "5" до "3" символов в конфигураторе, то все документы потеряют 2 символа (и старые и новые).
    3. Если у вас программный способ формирования нумерации и нет нумератора у докмента, то можно рассмотреть следующий вариант:
    Код:
    Префикс = "А" + Формат(ТекущаяДата(), "ДФ=MMyy");
    Номер = Префикс + "/" + Прав(Номер, 3);
    Нумератор - некий объект метаданных, который отвечает за порядок следования и присвоения номеров документам при создании. Для нескольких документов может быть 1 общий нумератор:
    например, в системе есть 2 документа "Реализация товаров" и "Реализация автомобилей". У них общий нумератор "Расход". Если вы руками/программно измените хоть один номер в документе (без разницы, реализация товаров или автомобилей), то при вводе следующего документа система сама проанализирует последовательность номеров нумератора и предложит новый номер отвечающий последним требованиям. (Длина, префикс, последняя цифра и т.п.).

    Решение вашей проблемы, думаю, лежит именно в реализации механизма программной установки нового номера (обработчик "ПриУстановкеНовогоНомера" в модуле объекта документа), в котором вы опишите как формировать новый номер. При этом, надо помнить, что если номер стал короче (с 5 символов до 3), то новые документы будут идти по порядку номеров раньше (5>3). Если есть нумератор, то уменьшение длины номера повредить ему не должно. Обратная ситуация, если вы сделаете потом длину 6 символов, то последовательность присвоения номера нумератором будет уже не корректной для всей группы документов подчиненных нумератору.
     
  10. Гость

    Репутация:
    0
    Кажется я уже запуталась...
    В общем номер вида формировался в подписке в процедуре ПриУстановкиНовогоНомера добавила
    ДобавитьПрефиксГодИМесяц(Источник, Префикс);

    И далее в процедуре

    Процедура ДобавитьПрефиксГодИМесяц(ДокументОбъект, Префикс) Экспорт
    Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.СчетНаОплатуПокупателю")
    ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.РеализацияТоваровУслуг")
    ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.СчетФактураВыданный")
    Тогда

    Префикс = Префикс + Формат(ДокументОбъект.Дата, "ДФ=MMyy") + "/";

    КонецЕсли;
    КонецПроцедуры

    То есть по сути вид номера даже не задавался, задавался формат префикса.
    Кстати, почему то еще не срабатывает это на документ СчетФактураВыданный.. не реагирует на префикс..
     
  11. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Проверьте состав объектов метаданных подписанных на событие (в свойствах подписки на события). Скорее всего документ не подключен.

    Вам надо дописать одну строку, чтоб было красиво и как вы хотите:
    Код:
    Номер = Прав(Номер, 3)
     
  12. Hryv

    Hryv Гость

    Репутация:
    0
    Походу без меня уже выяснили
    Надо или найти в коде место где номер генерится и там исправить
    или добавить код, чтобы номер правильно генерился
    примерно как Darlock предложил
    Длину номера менять не надо точно
     
  13. Гость

    Репутация:
    0
    Да... документ банально оказался не подключен... =)

    про номер сейчас попробую.
     
  14. Гость

    Репутация:
    0
    Почему то программа не реагирует на задание вот так номера..
    Пробовала добавить такую строчку в процедуру ПриУстановкиНовогоНомера
     
  15. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    "ПриУстановкеНовогоНомера" вызывается когда происходит обращение к методу "УстановитьНовыйНомер()".

    Если вы программно создаете документ, то строку кода "Номер = Префикс + Прав(Номер, 3)" надо писать в обработчике "ПриУстановкеНовогоНомера". А если нет, то можно попробовать в обработчике "ОбработкаЗаполнения" (в модуле объекта). Потому как самый первый вызывается он, а потом, "ПередОткрытием", "ПриОткрытии" и т.п.
     
  16. Гость

    Репутация:
    0
    Мучалась мучалась... пока вроде убедила начальство не резать номер.. =)

    Всем спасибо! Узнала по крайней мере много интересного про нумерацию.
     
Загрузка...

Поделиться этой страницей