()
Здравствуйте, еще предлагаю вот это добавить в расширение, не правильно выгружается налоговая ставка во фронтол, всем ставит 0, а если нужно без ндс тогда ставим 4
&Вместо("СформироватьФайлНастроек")
Функция Расш1_СформироватьФайлНастроек(СтруктураНастроек, ТекстовыйФайл, ТекстОшибки)
Результат = Истина;
Налоги = СтруктураНастроек.Налоги;
КомбинацииНалогов = СтруктураНастроек.КомбинацииНалогов;
БлокСтавок = "$$$ADDTAXRATES";
БлокГрупп = "$$$ADDTAXGROUPS";
БлокСтавокГрупп = "$$$ADDTAXGROUPRATES";
Если Налоги.Количество() = 0 Тогда
ТекстОшибки = НСтр("ru='Выгрузка настроек невозможна. Список ставок налога пуст.'");
Результат = Ложь;
Иначе
Если КомбинацииНалогов.Количество() = 0 Тогда
Если Налоги.Количество() > 1 Тогда
ТекстОшибки = НСтр("ru='Выгрузка настроек невозможна. На товары начисляется несколько налогов, необходимо заполнить комбинации налогов.'");
Результат = Ложь;
Иначе
Для Каждого ТекНалог Из Налоги Цикл
Если ТекНалог.Ставки.Количество() = 0 Тогда
ТекстОшибки = НСтр("ru='Выгрузка настроек невозможна. Список ставок налога пуст.'");
Результат = Ложь;
Прервать;
КонецЕсли;
Для Каждого ТекСтавка Из ТекНалог.Ставки Цикл
Текст = ?(СтрДлина(ТекСтавка.Текст)>100, Лев(ТекСтавка.Текст, 100), ТекСтавка.Текст);
БлокСтавок = БлокСтавок + Символы.ПС
+ Формат(ТекСтавка.Код, "ЧДЦ=; ЧГ=0") + ";" // Код
+ Текст + ";" // Наименование
+ Текст + ";" // Текст
+ "0;" // Тип налога
+ Формат(ТекСтавка.Значение, "ЧН=0; ЧГ=0") + ";" // Значение налога
+ ?(ТекСтавка.Код = 3, "4", "1"); //Номер налога для без НДС ставим 4 //Радченко М.В. 02.02.2018
БлокГрупп = БлокГрупп + Символы.ПС
+ Формат(ТекСтавка.Код, "ЧДЦ=; ЧГ=0") + ";" // Код
+ Текст + ";" // Наименование
+ Текст; // Текст
БлокСтавокГрупп = БлокСтавокГрупп + Символы.ПС
+ Формат(ТекСтавка.Код, "ЧДЦ=; ЧГ=0") + ";" // Код
+ Формат(ТекСтавка.Код, "ЧДЦ=; ЧГ=0") + ";" // Код налоговой группы
+ Формат(ТекСтавка.Код, "ЧДЦ=; ЧГ=0") + ";" // Код налоговой ставки
+ "1"; // Смена базы
КонецЦикла;
КонецЦикла;
КонецЕсли;
Иначе
ИндексСтавки = 1;
Для Каждого ТекНалог Из Налоги Цикл
Если ТекНалог.Ставки.Количество() = 0 Тогда
ТекстОшибки = НСтр("ru='Выгрузка настроек невозможна. Список ставок налога пуст.'");
Результат = Ложь;
Прервать;
КонецЕсли;
Для Каждого ТекСтавка Из ТекНалог.Ставки Цикл
Текст = ?(СтрДлина(ТекСтавка.Текст)>100, Лев(ТекСтавка.Текст, 100), ТекСтавка.Текст);
ТекСтавка.Вставить("Индекс", ИндексСтавки);
БлокСтавок = БлокСтавок + Символы.ПС
+ Формат(ИндексСтавки, "ЧДЦ=; ЧГ=0") + ";" // Код
+ Текст + ";" // Наименование
+ Текст + ";" // Текст
+ "0;" // Тип налога
+ Формат(ТекСтавка.Значение, "ЧН=0; ЧГ=0"); // Значение налога
ИндексСтавки = ИндексСтавки + 1;
КонецЦикла;
КонецЦикла;
ИндексНалоговойСтавкиГруппы = 1;
Для Каждого ТекКомбинация Из КомбинацииНалогов Цикл
КодКомбинации = Формат(ТекКомбинация.Код, "ЧДЦ=; ЧГ=0");
Текст = НСтр("ru = 'Группа №'") + КодКомбинации;
БлокГрупп = БлокГрупп + Символы.ПС
+ КодКомбинации + ";" // Код
+ Текст + ";" // Наименование
+ Текст; // Текст
Для Каждого ТекСтавкаКомбинации Из ТекКомбинация.Ставки Цикл
Для Каждого ТекНалог Из Налоги Цикл
Если ТекНалог.Код = ТекСтавкаКомбинации.КодНалога Тогда
Для Каждого ТекСтавка Из ТекНалог.Ставки Цикл
Если ТекСтавка.Код = ТекСтавкаКомбинации.КодСтавки Тогда
БлокСтавокГрупп = БлокСтавокГрупп + Символы.ПС
+ Формат(ИндексНалоговойСтавкиГруппы, "ЧДЦ=; ЧГ=0") + ";" // Код
+ КодКомбинации + ";" // Код налоговой группы
+ Формат(ТекСтавка.Индекс, "ЧДЦ=; ЧГ=0") + ";" // Код налоговой ставки
+ "0"; // Смена базы
Прервать;
КонецЕсли;
КонецЦикла;
Прервать;
КонецЕсли;
КонецЦикла;
ИндексНалоговойСтавкиГруппы = ИндексНалоговойСтавкиГруппы + 1;
КонецЦикла;
КонецЦикла;
КонецЕсли;
БлокНалогов = "$$$DELETEALLTAXGROUPRATES
|$$$DELETEALLTAXGROUPS
|$$$DELETEALLTAXRATES" + Символы.ПС
+ БлокСтавок + Символы.ПС
+ БлокГрупп + Символы.ПС
+ БлокСтавокГрупп;
КонецЕсли;
Если Результат Тогда
Если ТекстовыйФайл.КоличествоСтрок()>0 Тогда
// Определяем и удаляем блок видов оплаты.
ТекстФайла = ТекстовыйФайл.ПолучитьТекст();
Если Найти(ТекстФайла, "$$$DELETEALLTAXGROUPRATES")<>0 Тогда
Для ИндексСтроки = 3 По ТекстовыйФайл.КоличествоСтрок() Цикл
ТекущаяСтрока = ТекстовыйФайл.ПолучитьСтроку(ИндексСтроки);
Если ТекущаяСтрока = "$$$DELETEALLTAXGROUPRATES" Тогда
Пока Истина Цикл
Если ИндексСтроки = ТекстовыйФайл.КоличествоСтрок() + 1 Тогда
Прервать;
КонецЕсли;
ТекущаяСтрока = ТекстовыйФайл.ПолучитьСтроку(ИндексСтроки);
Если ТекущаяСтрока <> "$$$REPLACEQUANTITY" И ТекущаяСтрока <> "$$$DELETEALLWARES" Тогда
ТекстовыйФайл.УдалитьСтроку(ИндексСтроки);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Иначе
// Выгружаем в новый файл
ТекстовыйФайл.ДобавитьСтроку("##@@&&");
ТекстовыйФайл.ДобавитьСтроку("#");
КонецЕсли;
ТекстовыйФайл.ВставитьСтроку(3, БлокНалогов);
КонецЕсли;
Возврат Результат;
КонецФункции
Показать