• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема с нумерацией в ТиС

  • Автор темы Anatoly1987
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Anatoly1987

Приветствую всех на этом форуме. Вообщем ребята, проблема такая : имеется ТиС 7.70.954 на платформе 7.70.027. Теперь представьте что у нас есть реализация(купля-продажа) какого-либо товара, и номер документа содержит не только цифры но и префикс, скажем "Ч". Так вот при попытке выполнить :

Объект = СоздатьОбъект("Документ.ВозвратПоставщику");
Объект.Новый();

То, номер у документа будет начинаться с этого префикса (в нашем случае с "Ч"). Пробовал выполнять УстановитьНовыйНомер() но безрезультатно. Если конечно выполнить УстановитьНовыйНомер("0") тогда работает, но это не только не красиво, так еще и не по "мужски". Причем замечу что если вводить вручную тогда с нумерацией все впорядке. Проблема только с этим документом, с остальными документами все впорядке. Так вот как избежать такой нумерации? Устанавливать ноль в качестве префикса не очень хочеться.
 
V

vbs

Если тебе мешает префикс (видимо, чтобы не путать с "реализацией"), попробуй
Объект.ПрефиксНомера("")
И еще - в 9.54 оба указанных документа имеют один нумератор Торг12.
Можно в свойствах ВозвратПоставщику убрать этот нумератор
 
A

Anatoly1987

Объект.ПрефиксНомера("")
Пробовал не работает. Кстати возвращает пустую строку (т.е. прификса нет, хотя влепляет). Пробовал также Объект.ПрефиксНомера("А"), лепит "Ч" все равно.

И еще - в 9.54 оба указанных документа имеют один нумератор Торг12.
Можно в свойствах ВозвратПоставщику убрать этот нумератор

Приметил, но я не стороник менять конфу, поскольку эта штука должна работать и без меня, а чуть малейшее изменение и все, перенастраивать надо. Кстати забыл сказать что эта процедура выполняется разово. Я переношу данные из ИНФО-ПРЕДПРИЯТИЯ в ТиС. Все уже почти сделал, единственно с вот этим номером запарка. Может еще что посоветуешь?


Вот и раз! Щас пробую чистую базу, сделал реализацию вручную, делаю вручную возврат поставщика и там теперь префикс "Ч" есть. Не могу понять почему откровенно говоря. Продолжаю эксперементировать...

Еще что замечу. Опять же про ввод вручную. При указании фирмы префикс исчезает. (На фирму не указан префикс в настройках)
 
A

Anatoly1987

Только что посмотрел как работает процедура ПриИзмененииФирмы(), вообщем стало ясно что номер документа расчитавает на основании двух неизвестных (прошу прощения но об этом я не читал в мануале, не было времени) : дата и префикс фирмы. Теперь все вышеописанные мной неразберихи ясны. Когда я выполняю :

Объект = СоздатьОбъект("Документ.ВозвратПоставщику");
Объект.Новый();

на момент вычисления номера известна только дата, фирма не известна. А когда фирма не известна картина выглядит так, будто все номера сначала
отсортировываются в алфовитном порядке, потом берутся номера чей префикс ближе к концу "алфавита" и из них вычисляется максимальная числовая
часть. Когда фирма становиться известна (т.е. когда мы её указываем), берется её префикс и на основании этого префикса вычисляется новый номер.
Ну а если у фирмы (точнее у юр.лица) нет префикса, тогда выполняется :

УстановитьНовыйНомер("0");

Удивительно, но эта первая мысль которая пришла мне в голову, когда я думал над тем как решить проблему и её я посчитал глупой. Ну пусть даже если она и глупая - не один я дурак (а еще и разработчики 1с). Единственно я теперь немного модифицирую код на основании увиденного. Всем спасибо и благодарю за внимание. Думаю тему можно закрывать.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!