пятница, 31 октября 2014 г.

механизм адаптации прикладных решений под конкретного потребителя

механизм адаптации прикладных решений под конкретного потребителя

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

Подробнее тут: http://v8.1c.ru/o7/201410ext/index.htm

четверг, 30 октября 2014 г.

Программное проведение документа и проведение документа пользователем.

Итак. Для того чтобы вставить некое условие которое должно отработать только в том случае, если документ собирается проводить пользователь, можно:

1. ФормаДокумента, событие ПередЗаписью

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    Если
ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.Выполнен
            ИЛИ ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.Закрыт
            ИЛИ ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.ОтказКлиента
            ИЛИ ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.ОжидаетВозмещения Тогда
       
Сообщение = "Документ основания ["+СокрЛП(ДокументОснование)+"]. Состояние у документа основания """+СокрЛП(ДокументОснование.Состояние)+""". ";
       
Сообщить(Сообщение);
       
Отказ = Истина;
        Возврат;
    КонецЕсли;

КонецПроцедуры

2. ФормаСписка, событие ПередПроведением

Процедура СписокПередПроведением(Элемент, Отказ)

   
ДокументПеремещение = Элемент.ТекущаяСтрока;

    Если
ДокументПеремещение.ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.Выполнен
            ИЛИ ДокументПеремещение.ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.Закрыт
            ИЛИ ДокументПеремещение.ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.ОтказКлиента
            ИЛИ ДокументПеремещение.ДокументОснование.Состояние = Перечисления.СостояниеЗаказНаряда.ОжидаетВозмещения Тогда
       
Сообщение = "Документ основания ["+СокрЛП(ДокументПеремещение.ДокументОснование)+"]. Состояние у документа основания """+СокрЛП(ДокументПеремещение.ДокументОснование.Состояние)+""".";
       
Сообщить(Сообщение);
       
Отказ = Истина;
    КонецЕсли;

КонецПроцедуры