Версия для печати темы (https://pro1c.org.ua/index.php?s=16bbbac9d803e43d06d910eb74232b47&showtopic=36853)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Префиксы нового номера у самописных документов

Автор: Constantus 26.04.17, 15:43

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Имеется самописный документ "СамДок"

Прописал его на подписку на событие при установке нового номера документа. Однако номер не сохраняется и прежде всего не проставляется префикс Организации.

Отладчиком обнаружил, что в

Процедура ДобавитьПрефиксОрганизации(ДокументОбъект, Префикс) Экспорт


ЗначениеЗаполнено(ДокументОбъект.Организация.Префикс)

значение не заполнено.

Хотя на форме документа присутствует реквизит Оргнизация

Понимаю, что нарушил какую-то последовательность действий. Подскажите как правильно прописать номер...

Кроме того, почему при создании нового Документа сразу прописывается номер 0000004...?

Автор: Bernet 26.04.17, 15:50

Constantus @ Сегодня, 16:43 * ,

Цитата
Хотя на форме документа присутствует реквизит Оргнизация
а реквизит "Префикс" у организации заполнен?
Цитата
Кроме того, почему при создании нового Документа сразу прописывается номер 0000004
потому что вы скорее всего пробовали 4 раза создавать новый документ, но не записывали его - только открывали форму, но номер при этом все равно резервируется.

Автор: Constantus 26.04.17, 15:57

Bernet @ Сегодня, 18:50 * ,

Да, заполнен. У типовых форм заполнение номера происходит нормально..., т.е. с префиксом...

Автор: logist 26.04.17, 16:01

Цитата(Constantus @ 26.04.17, 16:57) *
Да, заполнен.

Кто-то из вас врет))) Если
Цитата(Constantus @ 26.04.17, 16:43) *
значение не заполнено.


Автор: Constantus 26.04.17, 16:07

Цитата(logist @ 26.04.17, 19:01) *
Кто-то из вас врет))) Если


Вот и я об томже...

Документ самописный, никаких процедур и функций ни в модуле формы, ни в модуле объекта нету...

Подозревал, что из-за отсутствия в модуле объекта нет процедуры Процедура ПриУстановкеНовогоНомера, но и в типовых как-то тоже нема smile.gif))

Автор: logist 26.04.17, 16:28

Цитата(Constantus @ 26.04.17, 16:43) *
ЗначениеЗаполнено(ДокументОбъект.Организация.Префикс)

А ЗначениеЗаполнено(ДокументОбъект.Организация) - показывает организацию которая выбрана в документе?

Автор: Constantus 26.04.17, 16:37

Constantus @ Сегодня, 19:07 * ,


Если форму документа делать управляемой, то номерация срабатывает правильно...

Цитата(logist @ 26.04.17, 19:28) *
А ЗначениеЗаполнено(ДокументОбъект.Организация) - показывает организацию которая выбрана в документе?



К сожалению пусто... В расшифровке по ДокументОбъект организация также пуста...

Автор: logist 26.04.17, 16:45

Цитата(Constantus @ 26.04.17, 17:37) *
К сожалению пусто...

Ну так вот вам и ответ на вопрос. У вас реквизит на форме не связан с реквизитом Объекта.

Автор: Constantus 26.04.17, 16:54

Цитата(logist @ 26.04.17, 19:45) *
Ну так вот вам и ответ на вопрос. У вас реквизит на форме не связан с реквизитом Объекта.



Да не может быть! В закладке "Данные" стоит реквизит "Организация", источник СправочникОрганизации.
На форме имеется поле Организация, связана с реквизитом "Организация" источник прописан серым нерадактированным полем с соответствующей ссылкой...

Автор: Bernet 26.04.17, 16:58

Смотрите тогда где определяется объект "ДокументОбъект" в коде и что с ним происходит потом, может реквизит "Организация" очищается где-то при записи/перед записью?

Автор: Petre 26.04.17, 17:02

Constantus @ Сегодня, 17:54 * ,
Возможно, следует подписать документ на событие, которое до наступления события установки нового номера заполняет документ дефолтовыми значениями, в. т. ч. организацией.

Автор: logist 26.04.17, 17:03

Цитата(Constantus @ 26.04.17, 17:54) *
Да не может быть! В закладке "Данные" стоит реквизит "Организация"

А должно быть "Объект.Организация"

Автор: Constantus 26.04.17, 17:16

Процедура ПриОткрытии()

    Если ЭтоНовый() Тогда

    Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация");
    Склад = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойСклад");

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


Этот код у меня стоит при открытии формы документа... Может потому что Организация никак не записана? Поэтому не видит никакой организации, ну и соответствющий префикс...

Как тогда сделать, чтобы при открытии формы номер документа был пуст?

Блин...

Поставил при открытии на новом документе

Номер = Null

Все сработало...

Автор: logist 26.04.17, 17:23

Цитата(Constantus @ 26.04.17, 18:16) *
Поставил при открытии на новом документе

Номер = Null

А почему он у вас там не пустой? Хотя. если вам пофиг, и костыли это нормально...

Автор: Constantus 26.04.17, 17:32

logist @ Сегодня, 20:23 * ,


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

Как правильно сделать открытие нового документа?

Автор: Petre 27.04.17, 8:29

Constantus @ Вчера, 18:32 * ,
В обычной форме документа есть соответствующее свойство присваивания номера.

Автор: RedCat77 27.04.17, 8:41

Цитата(Constantus @ 26.04.17, 18:32) *
в обычной форме при создании нового документа сразу проставляется номер

Какое значение установлено в свойстве формы "Автонумерация"?

Автор: Constantus 27.04.17, 13:47

RedCat77 @ Сегодня, 11:41 * ,

Автонумерация: Истина
Длина номера: 11
Контроль уникальности: Истина
Тип номера: строка
Непериодический

Цитата(logist @ 26.04.17, 20:23) *
А почему он у вас там не пустой? Хотя. если вам пофиг, и костыли это нормально...


Вот и всплыл костыль: при таком моем подходе (Номер = Null) нумерация работает, но номер идет через 1, т.е.

ПР0001, ПР0003, ПР0005....

Так как правильно организовать нормальную нумерацию при самописных документах?

Constantus @ Сегодня, 16:09 * ,


Блин... убрал автонумерацию именно в форме (такой малозаметный реквизит) вроде пошла нумерация...

Или еще есть подводные ножы в запазухе?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua