8.х Ввод на основании с проверкой условия

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Lokky, 30 июл 2011.

  1. TopicStarter Overlay
    Lokky
    Offline

    Lokky

    Регистрация:
    24 июл 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Документ ЗаявкаНаТранспорт вводится на основании документа ПродажаТоваров. Но только при условии что сумма покупки из документа ПродажаТоваров превышает 1000. В документе ЗаявкаНаТранспорт есть реквизит ссылка на документ ПродажаТоваров.

    На документ ЗаявкаНаТранспорт в форму документа на процедуру ПередОткрытием пишу следующий код:
    Код:
    Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Отказ = Истина;
    Сумма = ДокументСсылкаПродажаТоваров.СуммаПокупки;		
    Если Сумма > 999 Тогда Отказ = Ложь
    КонецЕсли;
    КонецПроцедуры
    
    Но он не проверяет условие. Не пойму почему?
  2. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Вы делаете ввод на основании. Зачем Вам обработчик ПередОткрытием? Отказ в этом обработчике означает отказ открытия формы документа. Ваш код не откроет ни 1 документ, где сумма меньше 999, а Вам нужна обработка заполнения. Открываете "ОбработкаЗаполнения" документа ЗаявкаНаТранспорт, прописываете там нужный обработчик заполнения. Для облегчения задания добавляете ссылку ЗаявкаНаТранспорт в документ ПродажаТоваров и например в "ОбработкаПроведения" документа ПродажаТоваров пишете следующее:
    Код:
    Если СуммаПокупки >= 1000 И ЗаявкаНаТранспорт.Пустая() Тогда
    Заявка = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
    Заявка.Заполнить(Ссылка);
    Заявка.Записать(РежимЗаписиДокумента.Проведение);
    ЗаявкаНаТранспорт = Заявка.Ссылка;
    КонецЕсли;
    
    И не забудьте в метаданных документа ЗаявкаНаТранспорт указать что он вводится на основании ПродажаТоваров.
  3. TopicStarter Overlay
    Lokky
    Offline

    Lokky

    Регистрация:
    24 июл 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Так мне по идее и надо, чтоб для документов с СуммойПокупки < 1000 форма документа "ЗаявкаНаТранспорт" вообще не открывалась и не было возможности создать заявку никаким другим способом. А вот как сделать, чтоб от тысячи открывалась не пойму.
  4. TopicStarter Overlay
    Lokky
    Offline

    Lokky

    Регистрация:
    24 июл 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Попробовал Предложенным способом, выдает ошибку

    {Документ.ПродажаТоваров(3,30)}: Переменная не определена (ЗаявкаНаТранспорт)
    Если СуммаПокупки >= 1000 И <<?>>ЗаявкаНаТранспорт.Пустая() Тогда

    Реквизит ДокументСсылкаЗаявкаНаТранспорт добавил.

Поделиться этой страницей