8.х Передача переменных между модулями

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

  1. TopicStarter Overlay
    DDRON
    Offline

    DDRON Опытный в 1С

    Регистрация:
    26 авг 2008
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    Добрый день.

    У меня слудующяя проблема. Логика (в общих чертах) такова:
    Есть поле "Сумма" и есть поле "Всего".
    Если СуммаВключаетНДС = истина, то Всего = Сумма.
    иначе Всего = Сумма*НДС.

    Моя задача - для вновь добавляемых документов поставить в процедуре обрабатывающей СуммавключаетНДС = истина ВСЕГДА.

    Проблема в чём. Если я просто в этой процедуре напишу:
    Код:
    СуммаВключаетНДС =  истина;
    
    
    
    
    то при открытии ранее записанных документов, при попытке их закрытия возникает сообщение "сохранить изменения в документе?" (и это логично). Это меня не устраивает.

    В каком направлении копать?

    То есть мне надо что бы для внось создаваемого документа, полю принудительно присваивалось значение "истина",
    а при открытии ранее созданного документа никаких присваиваний не происходило.

    У меня есть мысль, в процедуре создающей документ, как раз провести это присваивание. Но как мне передать это значение в процедуру производющюю записть? У меня на это не хватает знаний. Процедура эта находится в другом модуле, нежели моя процедура записи в документ.

    Сама процедура записи имеет такой вид:

    раз:
    Код:
    Процедура УслугиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ЭлементыФормы.Услуги.Колонки.Всего.Видимость Тогда
    
    ОформлениеСтроки.Ячейки.Всего.УстановитьТекст(ФормированиеПечатныхФорм.ФорматСумм(ДанныеСтроки.Сумма
    + ?(СуммаВключаетНДС, 
    0, ДанныеСтроки.СуммаНДС)));
    Предупреждение(СуммаВключаетНДС);
    Предупреждение(ДанныеСтроки.СуммаНДС);
    
    КонецЕсли;
    КонецПроцедуры
    
    
    
    
    
    потом выполнение перескакивает сюда:
    Код:
    Процедура ОбновитьПодвал()
    // При изменении данных обновим суммы в подвале.
    Предупреждение(СуммаВключаетНДС);
    
    ЭлементыФормы.Всего.Значение    = ФормированиеПечатныхФорм.ФорматСумм(ОбщегоНазначения.
    ПолучитьСуммуДокументаСНДС
    (ЭтотОбъект, "Товары") + 
    ?(ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.
    ОтгрузкаБезПереходаПраваСобственности, 
    0, ОбщегоНазначения.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "Услуги")));
    ...........    
    ...........
    КонецПроцедуры // ОбновитьПодвал()
    
    
    
    
    
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Я правильно понял, что "СуммаВключаетНДС" - это реквизит документа?
    Тогда в процедуре "ПередОткрытием" следует написать что-то типа:
    Код:
    Если ЭтоНовый() Тогда 
    СуммаВключаетНДС =  истина;
    КонецЕсли;
    
    А если это переменная, то ее следует сделать реквизитом :unsure: , потому что в противном случае эта информация не сохранится в документе после закрытия.

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