+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
ДействующиеПостановления = Новый Структура;
ДействующиеПостановления.Вставить("Постановление914", ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137);
ДействующиеПостановления.Вставить("Постановление1137", НЕ (ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137));
ДействующиеПостановления.Вставить("Постановление1137_625", ВедетсяУчетНДСПоФЗ56(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
ДействующиеПостановления.Вставить("Постановление981", ДействуетПостановление981(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
ОпцииПечатиСчетаФактуры.Вставить("ДействующиеПостановления", ДействующиеПостановления);
Если ДанныеПечати.КорректировочныйСчетФактура Тогда
Если ДействующиеПостановления.Постановление981 Тогда
Макет = МакетКорр_981;
ЕстьПостановление981 = Истина;
ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
Макет = МакетКорр_625;
ЕстьПостановление1137_625 = Истина;
Иначе
Макет = МакетКорр;
ЕстьПостановление1137 = Истина;
КонецЕсли;
ИначеЕсли ДействующиеПостановления.Постановление914 Тогда
Макет = Макет451;
ЕстьПостановление914 = Истина;
ИначеЕсли ДействующиеПостановления.Постановление981 Тогда
Макет = Макет981;
ЕстьПостановление981 = Истина;
ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
Макет = Макет1137_625;
ЕстьПостановление1137_625 = Истина;
Иначе
Макет = Макет1137;
ЕстьПостановление1137 = Истина;
КонецЕсли;
Если (ЕстьПостановление914 И ЕстьПостановление1137)
ИЛИ (ЕстьПостановление914 И ЕстьПостановление981)
ИЛИ ((ЕстьПостановление1137 ИЛИ ЕстьПостановление1137_625) И ЕстьПостановление981) Тогда
Текст = НСтр("ru = 'Недоступна одновременная печать счетов-фактур, сформированных по разным постановлениям Правительства РФ'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
Текст,
ДанныеПечати.Ссылка);
ТабличныйДокумент.Очистить();
Прервать;
КонецЕсли;
Типовая УТ 11.3.4.93, ПечатьОбщихФорм, модуль менеджера
Что проверяют эти "Если"? Не ошибся ли программист?
Постановление определяется по дате счета-фактуры. Интересно, как можно сформировать счет-фактуру одновременно "по разным постановлениям Правительства РФ"?
И мало того, что вторая и третья строки всегда дают противоположный результат. Нет, на всякий случай проверим "Если (ЕстьПостановление914 И ЕстьПостановление1137)".
Интересно также, как после ИначеЕсли ожидали получить сочетание разных "постановлений"? И почему проверяется всего три неправильных сочетания? Надо больше кода!
Еще понравилась оригинальная идея завести на каждый элемент структуры отдельную переменную, потом присвоить этой переменной то же, что и в структуре, а потом проверить сочетание этих переменных. Надо заметить, что переменные ЕстьПостановлениеYYYY больше нигде не используются.
Запостил: romanvk,
10 Ноября 2017
romanvk 10.11.2017 11:01 # 0
SemaReal 10.11.2017 18:26 # +1
то-есть вот это ты считаешь ок?
>>Макет = Макет1137_625;
?
morrey 10.11.2017 19:27 # 0
SemaReal 11.11.2017 22:26 # 0
Если это часть domain logic которую мы просто не знаем (например, закон номер 1137) то тогда это и правда нормально.
Zuzik 11.11.2017 17:24 # 0
levxxx 12.12.2017 16:33 # 0