Имя: Пароль:
1C
1С v8
Автонумерация элементов формы
0 amadeus2010
 
16.07.12
11:06
Добрый день столкнулся с такой проблемой, необходимо задать автонумерацию элементу формы поле ввода.Суть вопроса вот в чем.Имеется элемент формы Код Оракл,раньше номер Кода операторы вводили вручную,а теперь надо сделать так чтобы при открытии и записи формы справочника номер код оракл заполнялся автоматически, как код справочника. Добавил такую строку кода в процедуру ПриОткрытии()и ПослеЗаписи()
МеханизмНумерацииОбъектов.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Действия,ЭлементыФормы.КодОракл);
В режиме Предприятие при нажатии на Записать поле ввода КодОракл остается пустым. Посоветуйте как можно сделать Автонумерацию элменту формы КодОракл.
1 Zombi
 
16.07.12
11:15
ЭлементыФормы.КодОракл = ЭлементыФормы.Код  
Не?
2 Reset
 
16.07.12
11:19
3 amadeus2010
 
16.07.12
11:42
(1) В этом случае КодОракл получит нумерацию от Код, а надо раздельно КодОракл получает свои номера от последнего введенного номера и далее генерирует их автоматически.Например последний введенный оператором КодОракл был 108300 значит последующий д.б 108301 и т.д. Оператор не должен сам вводить номер кода он должен присваиваться сам при нажатии кнопки Записать как присваивается номер Коду.
(2) Да действительно ранее я создавал тему по этому вопросу но потом временно решение этой задачи оставили на потом и вот теперь снова к ней вернулись.

Как я писал в (0) ПриОткрытии() есть вызов через МеханизмНумерации метода генерации номера Кода, я добавил свои строки но не сработало. Может есть способ запустить МеханизмНумерации с  моими изменениями?
4 hhhh
 
16.07.12
12:03
(3) а в чем проблема? НУ добавляйте свои изменения в МеханизмНумерации и запускайие.
5 amadeus2010
 
16.07.12
12:12
(3) как написал в начале темы я добавил следующие строки
МеханизмНумерацииОбъектов.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Действия,ЭлементыФормы.КодОракл);
Но при нажатии на кнопку Записать справочника в КодОракл не ставится номер автоматически и поле остается пустым.Как можно решить этот вопрос.Есть ли в общем модуле процедура или функция задающая автонумерацию для элемента Код в справочниках?
6 hhhh
 
16.07.12
12:22
(5) но у вас действительно поле ввода ЭлементыФормы.КодОракл привязано к коду справочника?
7 amadeus2010
 
16.07.12
13:02
нет поле ввода КодОракл самостоятельный элемент и до сих пор  у него была своя нумерация,которая и должна сохраниться дальше только номера КодОракл должен получать автоматом при также как и Код справочника при нажатии на кнопку записать.
8 amadeus2010
 
16.07.12
13:07
Конечно есть вариант пропустить КодОракл через цикл с приращением КодОракл+1 и проверкой на пустое поле(), но хотелось бы использовать стандартные механизмы 1С
9 hhhh
 
16.07.12
13:21
(7) как-то вы слишком верите в чудо. Ведь там написано "поле ввода должно быть привязано к коду справочника". У вас оно не привязано.
10 amadeus2010
 
16.07.12
13:26
(9) не совсем понял где написано?
11 hhhh
 
16.07.12
13:32
(10) в описании в процедуре

УстановитьДоступностьПоляВводаНомера

знаешь, иногда полезно сначала прочитать.
12 amadeus2010
 
16.07.12
13:32
ВЫ имеете ввиду то что написано перед процедурой Процедура УстановитьДоступностьПоляВводаНомера() в общем модуле МеханизмыНумерации.

И что никак нельзя сгенрировать автонумерацию элемента наподобие 1с кода
13 hhhh
 
16.07.12
13:37
(12) стандартный механизм он вшит в саму платформу. И естественно только поле "код" он поддерживает. Остальные поля - это вы сами, пишите программу и перенумеровывайте.
14 amadeus2010
 
16.07.12
13:45
Просмотрев далее по модулю процедуры нашел
ДобавитьВМенюДействияКнопкуРедактированияКода котрая находиться перед УстановитьДоступность, теперь теоритически если добавить свои процедуры в модуль вместо Код указать КодОракл,то наверно должно сработать или лучше в Процедуре Записать справочника сразу поставить цикл с условием генерирующий новый номер для КодОракл?
15 amadeus2010
 
16.07.12
14:37
Есть какие-либо предложения?
16 amadeus2010
 
17.07.12
08:20
Есть какие-либо предложения?
17 amadeus2010
 
17.07.12
11:15
Касательно (14) про модуль немного поторопился процедуры отрабатывают встроенный Код или Номер. Насчет самостоятельного написания кода автонумерации написал следующий код, который пока не работает

///////////////////////////////////////////////////////////
Если ПустаяСтрока(ЭлементыФормы.КодОракл) Тогда
       ЭлементыФормы.КодОракл=ЭлементыФормы.КодОракл+1;
       КонецЕсли;
////////////////////////////////////////////////////////////////
Эту часть кода добавил в процедуру ПриЗаписи. Не подскажите есть ли функция проверки последнего введенного числа и присвоении кода на основании числа. Например  КодОракл=Максимум(Число)+1?