Выкладываю текст процедуры "ПриВыбореВариантаРасчетаНалогов()" из модуля формы документа, которая вызывается при раскрытии списка "Вариант расчета налогов". Идентификатор этого поля "ВариантРасчетаНалогов".
// ПриВыбореВариантаРасчетаНалогов()
//
// Вызывается из формул элементов диалога:
// Поле ввода "ВариантРасчетаНалогов".
//
// Описание:
// Пересчитывает суммы в документе при смене варианта расчета налогов.
//
Процедура ПриВыбореВариантаРасчетаНалогов()
Если ВариантРасчетаНалогов = ТекущийВариантРасчетаНалогов Тогда
Возврат
КонецЕсли;
Если КоличествоСтрок() > 0 Тогда
Ответ = Вопрос("Пересчитать суммы налогов в существующих строках
|табличной части (суммы налогов будут
|обновлены в соответствии с выбранным вариантом)?", "Да+Нет+Отмена");
Если Ответ = "Да" Тогда
ОбщееКоличество = КоличествоСтрок();
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
РассчитатьНалоги();
Состояние("Обработано: " + Окр(НомерСтроки/ОбщееКоличество*100, 0, 1) + "%");
КонецЦикла;
ИначеЕсли Ответ = "Отмена" Тогда
ВариантРасчетаНалогов = ТекущийВариантРасчетаНалогов;
КонецЕсли;
КонецЕсли;
УчитыватьНП = глПризнакУчетаНалога(Контекст, "НП");
УчитыватьНДС = глПризнакУчетаНалога(Контекст, "НДС");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
НДС = ?(УчитыватьНДС = 0, 0, НДС);
НП = ?(УчитыватьНП = 0, 0, НП);
КонецЦикла;
Форма.НДС.Видимость(УчитыватьНДС);
Форма.НП.Видимость(УчитыватьНП);
КонецПроцедуры // ПриВыбореВариантаРасчетаНалогов()
Также в модуле формы есть процедура "ВариантРасчетаНалогов()", название которой совпадает с идентификатором.
Выкладываю текст этой процедуры:
// ВариантРасчетаНалогов()
//
// Вызывается из формул элементов диалога:
// Нет.
//
// Описание:
// Подбирает вариант расчета налогов.
//
Процедура ВариантРасчетаНалогов(ВРН)
Если (ВРН.СтавкаНП.Ставка = 0) и
(ВРН.СтавкаНДС.Ставка = 0) Тогда
ВариантРасчетаНалогов = ВРН;
Иначе // попробуем найти подходящий из существующих вариантов расчета налогов
СпрВариант = СоздатьОбъект("Справочник.ВариантыРасчетаНалогов");
СпрВариант.ВыбратьЭлементы();
Пока СпрВариант.ПолучитьЭлемент() = 1 Цикл
Если ((ВРН.СтавкаНДС.Ставка = 0)
и (СпрВариант.СтавкаНДС = ВРН.СтавкаНДС)
и (СпрВариант.СуммаВключаетНДС = ВРН.СуммаВключаетНДС))
или ((ВРН.СтавкаНДС.Ставка <> 0)
и (СпрВариант.СтавкаНДС.Выбран() = 0)
и (СпрВариант.СуммаВключаетНДС = ВРН.СуммаВключаетНДС)) Тогда
Если ((ВРН.СтавкаНП.Ставка = 0)
и (СпрВариант.СтавкаНП = ВРН.СтавкаНП)
и (СпрВариант.СуммаВключаетНП = ВРН.СуммаВключаетНП))
или ((ВРН.СтавкаНП.Ставка <> 0)
и (СпрВариант.СтавкаНП.Выбран() = 0)
и (СпрВариант.СуммаВключаетНП = ВРН.СуммаВключаетНП)) Тогда
ВариантРасчетаНалогов = СпрВариант.ТекущийЭлемент();
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Форма.НДС.Видимость(УчитыватьНДС);
// Форма.НП.Видимость(УчитыватьНП);
КонецПроцедуры // ВариантРасчетаНалогов()
Други!!!!!!!!!!!!!
ПОДСКАЖИТЕ ГДЕ КОПАТЬ!!!