Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Установка префикса в документе Зарплата к выплате организации
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Pashaboston
У меня задача в УТП для Украины при создании нового документа нужно устанавливать префикс. Я создал реквизит типу булево и если 1 тогда префикс "К-" если 0 тогда префикс "Б-". Но ставится только префик без номера. Вот код:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
     Если ЭтоНовый() Тогда        
        УстановкеНовогоНомера(Ложь, "");
    КонецЕсли;    
    
    Если ОбменДанными.Загрузка  Тогда
        Возврат;
    КонецЕсли;
    
    КраткийСоставДокумента = ПроцедурыУправленияПерсоналом.ЗаполнитьКраткийСоставДокумента(РаботникиОрганизации);
    ПроцедурыУправленияПерсоналом.ЗаполнитьФизЛицоПоТЧ(РаботникиОрганизации);
    
    мУдалятьДвижения = НЕ ЭтоНовый();
    
КонецПроцедуры

Процедура УстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    
    //СтандартнаяОбработка = Ложь;
      Префикс = ?(СпособОплаты, "Б", "К");
    //Если СпособОплаты = Истина Тогда
//        Префикс ="К-";
    //Иначе
    //    Префикс = "Б-";
    //КонецЕсли;
    
    Номер =  Префикс+Номер;
КонецПроцедуры



 ! 

Выделяйте код
 
Petre
Перебивает подписка на событие.
Секунду, перед записью номера еще нет.
logist
Вам нужно обсытие модуля ПриУстановкеНовогоНомера
Pashaboston
Сделал вот так но все равно не ставит номер:
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    
    СтандартнаяОбработка = Ложь;
          Если СпособОплаты = Истина Тогда
        Префикс ="К-";
    Иначе
        Префикс = "Б-";
    КонецЕсли;
    
    Номер =  Префикс+Номер;
КонецПроцедуры
Batchir
Посмотрите, возможно таки подписка на событие перетирает Ваши изменения. В УТП это подписка на событие ПриУстановкеНовогоНомераДокумента
Pashaboston
Такого события вообще нет.
Petre
Цитата(Pashaboston @ 07.07.14, 11:31) необходимо зарегистрироваться для просмотра ссылки
Сделал вот так но все равно не ставит номер:

В этом нет никакого смысла, т. к. номер переназначится в подписке, которая выполняется после выполнения обработчика события.
Цитата(Pashaboston @ 07.07.14, 16:48) необходимо зарегистрироваться для просмотра ссылки
Такого события вообще нет.

Общее / Подписки на события: ПриУстановкеНовогоНомераДокумента;
Общее / Общие модули: ОбщегоНазначения.ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера().
Pashaboston
Все равно ставит только префикс, сделал так:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Если ЭтоНовый() Тогда        
        ПриУстановкеНовогоНомера(Ложь, "");
    КонецЕсли;
КонецПроцедуры

Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
        
    //СтандартнаяОбработка = Ложь;
    ОбщегоНазначения.ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера(ЭтотОбъект, СтандартнаяОбработка, Префикс);
          Если СпособОплаты = Истина Тогда
        Префикс = СокрЛП(Префикс)+"К-";
    Иначе        
        Префикс = СокрЛП(Префикс)+"Б-";
    КонецЕсли;
    
    Номер =  Префикс+Номер;
КонецПроцедуры
Petre
Думаю, Вам стоит почитать документацию по поводу подписок на события.
Pashaboston
Я 1с только месяц назад увидел)))
DartRomanius
Цитата(Pashaboston @ 08.07.14, 10:12) необходимо зарегистрироваться для просмотра ссылки
Я 1с только месяц назад увидел)))


Это не повод не читать доки. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.