Имя: Пароль:
1C
1С v8
Печатная форма налоговой накладной
0 Pomogite
 
08.02.12
17:49
Добрый день! У меня возникла сложность никак не могу правильно поставить условие для цикла в процедуре печатной формы налоговой накладной.
// Выведем на печать все строки таблицы в раздел I
       Если  ТаблицаНоменклатуры = Истина И ТаблицаПоУслугам = Ложь Тогда            
       Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл
       
           Если ЭтоПерваяСтрока Тогда    
               // в первой строке раздела укажем номер раздела
               ОбластьМакета.Параметры.НомерРаздела = "I";
               ЭтоПерваяСтрока = Ложь;
           Иначе
               ОбластьМакета.Параметры.НомерРаздела = "";
           КонецЕсли;    
           
           ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);
           
           Если ПечататьКодУКТВЭДБезПробелов Тогда
               ОбластьМакета.Параметры.КодУКТВЭД = СтрЗаменить(ОбластьМакета.Параметры.КодУКТВЭД, " ", "");
           КонецЕсли;
           
           Если ЗначениеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество) Тогда
               ОбластьМакета.Параметры.Количество = СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество;
           КонецЕсли;
           
           // дата отгрузки/оплаты
           Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ДатаОтгрузкиОплаты) Тогда
               // укажем дату выписки накладной
               ОбластьМакета.Параметры.ДатаОтгрузкиОплаты = Дата;
           КонецЕсли;
           
           Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) И Страница = 1 Тогда
               Сообщить(НСтр("ru='В одной из строк не заполнено наименование номенклатуры - проверьте заполнение документа!';uk='В одному з рядків не заповнене найменування номенклатури - перевірте заповнення документа!'"), СтатусСообщения.Важное);
           КонецЕсли;
           
           ОбластьМакета.Параметры.Номенклатура = СокрП("" + СтрокаТаблицы.Номенклатура) + ?(НЕ ЗначениеЗаполнено(СтрокаТаблицы.Характеристика), "", "(" + СтрокаТаблицы.Характеристика +")");
           ОбластьМакета.Параметры.Сумма20       = СимволДляПустыхПоказателей;
           //ОбластьМакета.Параметры.Сумма0Укр    = СимволДляПустыхПоказателей;
           //ОбластьМакета.Параметры.Сумма0Эксп    = СимволДляПустыхПоказателей;
           //ОбластьМакета.Параметры.СуммаБезНДС   = СимволДляПустыхПоказателей;
           
           // Определим в какую колонку (в зависимости от ставки НДС) попадает сумма без НДС
           Колонка = "Сумма" + ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС);
           ОбластьМакета.Параметры[Колонка] = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Сумма, ,"0,00");
           ТабДокумент.Вывести(ОбластьМакета);
           Если ТолькоФормироватьСтруктуруПоказателейПечатнойФормы = Истина И Страница = 1 Тогда
               
               СтрокаСтруктуры = СтруктураПоказателей.НалоговыйДокумент.R.Добавить();
               СтрокаСтруктуры.G2D = ОбластьМакета.Параметры.ДатаОтгрузкиОплаты;
               СтрокаСтруктуры.G3S = ОбластьМакета.Параметры.Номенклатура+ОбластьМакета.Параметры.СодержаниеУслуг+ОбластьМакета.Параметры.Содержание;
               СтрокаСтруктуры.G3S = ОбластьМакета.Параметры.Номенклатура;
               СтрокаСтруктуры.G4 = ОбластьМакета.Параметры.КодУКТВЭД;
               
               СтрокаСтруктуры.G4S = ОбластьМакета.Параметры.ЕдиницаИзмерения;
               СтрокаСтруктуры.G5_ = ОбластьМакета.Параметры.Количество;
               СтрокаСтруктуры.G5  = ?(ЗначениеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество),0,ОбластьМакета.Параметры.Количество);
               СтрокаСтруктуры.G5S = ?(ЗначениеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество),СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество,"");
               СтрокаСтруктуры.G6  = ОбластьМакета.Параметры.ЦенаБезНДС;
               
               КолонкаДляСуммы = ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС);
               Если КолонкаДляСуммы = "20" Тогда
                   СтрокаСтруктуры.G7  = СтрокаТаблицы.Сумма;    
               ИначеЕсли КолонкаДляСуммы = "0Укр" Тогда
                   СтрокаСтруктуры.G8  = СтрокаТаблицы.Сумма;    
               ИначеЕсли КолонкаДляСуммы = "0Эксп" Тогда
                   СтрокаСтруктуры.G9  = СтрокаТаблицы.Сумма;    
               ИначеЕсли КолонкаДляСуммы = "БезНДС" Тогда
                   СтрокаСтруктуры.G10 = СтрокаТаблицы.Сумма;    
               КонецЕсли;    
               
           КонецЕсли;
         КонецЦикла;
         КонецЕсли;
         
         
         Если  ТаблицаНоменклатуры = Ложь И ТаблицаПоУслугам = Истина Тогда
         Для каждого СтрокаТаблицы Из ТаблицаПоУслугам Цикл
       
           Если ЭтоПерваяСтрока Тогда    
               // в первой строке раздела укажем номер раздела
               ОбластьМакета.Параметры.НомерРаздела = "I";
               ЭтоПерваяСтрока = Ложь;
           Иначе
               ОбластьМакета.Параметры.НомерРаздела = "";
           КонецЕсли;    
           
           ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);
           
           Если ПечататьКодУКТВЭДБезПробелов Тогда
               ОбластьМакета.Параметры.КодУКТВЭД = СтрЗаменить(ОбластьМакета.Параметры.КодУКТВЭД, " ", "");
           КонецЕсли;
           
           Если ЗначениеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество) Тогда
               ОбластьМакета.Параметры.Количество = СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество;
           КонецЕсли;
           
           // дата отгрузки/оплаты
           Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ДатаОтгрузкиОплаты) Тогда
               // укажем дату выписки накладной
               ОбластьМакета.Параметры.ДатаОтгрузкиОплаты = Дата;
           КонецЕсли;
           
           Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) И Страница = 1 Тогда
               Сообщить(НСтр("ru='В одной из строк не заполнено наименование номенклатуры - проверьте заполнение документа!';uk='В одному з рядків не заповнене найменування номенклатури - перевірте заповнення документа!'"), СтатусСообщения.Важное);
           КонецЕсли;
           
           ОбластьМакета.Параметры.Номенклатура    = СтрокаТаблицы.Номенклатура;        
           ОбластьМакета.Параметры.СодержаниеУслуг =  СтрокаТаблицы.СодержаниеУслуг;
           ОбластьМакета.Параметры.Содержание      =  СтрокаТаблицы.Содержание;    
           ОбластьМакета.Параметры.Сумма20        = СимволДляПустыхПоказателей;
           //ОбластьМакета.Параметры.Сумма0Укр    = СимволДляПустыхПоказателей;
           //ОбластьМакета.Параметры.Сумма0Эксп    = СимволДляПустыхПоказателей;
           //ОбластьМакета.Параметры.СуммаБезНДС   = СимволДляПустыхПоказателей;
           ОбластьМакета.Параметры.ЦенаБезНДС      = СтрокаТаблицы.Цена;
           //Определим в какую колонку (в зависимости от ставки НДС) попадает сумма без НДС
           Колонка = "Сумма" + ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС);
           ОбластьМакета.Параметры[Колонка] = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Сумма, ,"0,00");
           ТабДокумент.Вывести(ОбластьМакета);
           Если ТолькоФормироватьСтруктуруПоказателейПечатнойФормы = Истина И Страница = 1 Тогда
               
               СтрокаСтруктуры = СтруктураПоказателей.НалоговыйДокумент.R.Добавить();
               СтрокаСтруктуры.G2D = ОбластьМакета.Параметры.ДатаОтгрузкиОплаты;
               СтрокаСтруктуры.G3S = ОбластьМакета.Параметры.Номенклатура+ОбластьМакета.Параметры.СодержаниеУслуг+ОбластьМакета.Параметры.Содержание;
               СтрокаСтруктуры.G3S = ОбластьМакета.Параметры.Номенклатура;
               СтрокаСтруктуры.G4 = ОбластьМакета.Параметры.КодУКТВЭД;
               
               СтрокаСтруктуры.G4S = ОбластьМакета.Параметры.ЕдиницаИзмерения;
               СтрокаСтруктуры.G5_ = ОбластьМакета.Параметры.Количество;
               СтрокаСтруктуры.G5  = ?(ЗначениеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество),0,ОбластьМакета.Параметры.Количество);
               СтрокаСтруктуры.G5S = ?(ЗначениеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество),СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество,"");
               СтрокаСтруктуры.G6  = ОбластьМакета.Параметры.ЦенаБезНДС;
               
               КолонкаДляСуммы = ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС);
               Если КолонкаДляСуммы = "20" Тогда
                   СтрокаСтруктуры.G7  = СтрокаТаблицы.Сумма;    
               ИначеЕсли КолонкаДляСуммы = "0Укр" Тогда
                   СтрокаСтруктуры.G8  = СтрокаТаблицы.Сумма;    
               ИначеЕсли КолонкаДляСуммы = "0Эксп" Тогда
                   СтрокаСтруктуры.G9  = СтрокаТаблицы.Сумма;    
               ИначеЕсли КолонкаДляСуммы = "БезНДС" Тогда
                   СтрокаСтруктуры.G10 = СтрокаТаблицы.Сумма;    
               КонецЕсли;    
               
           КонецЕсли;
       
       КонецЦикла;
       КонецЕсли;
1 Pomogite
 
08.02.12
17:51
Условие не подходит

Если  ТаблицаНоменклатуры = Истина И ТаблицаПоУслугам = Ложь Тогда
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.