- МЕНЮ
 - В избранное
Самые важные новости
 
Царьков Валерий
Перенос проводок ТиС 9.0 - Бух 4.2

        При переносе проводок из "Торговли 9.0" в "Бухгалтерию 4.2" с использованием стандартной процедуры "Выгрузка в 1С:Бухгалтерию" переносится и вся номенклатура. Бухгалтер, как правило, желает вместо полного списка товаров видеть что-то типа:
        - товар 20% НДС без НП
        - товар 10% НДС без НП
        - товар без НДС без НП
        - товар 20% НДС 5% НП
...
т.е чтобы номенклатура была сгруппирована по ставкам налогов НДС и НП.

        Сделать такой "финт" несложно. Для начала необходимо создать в справочнике элементы номенклатуры, которые, собственно, и будем выгружать (лучше в отдельной папке "Для Бухгалтерии", или что-то вроде). Так получится столько элементов, сколько комбинаций налогов НДС и НП встречается у Вас (у нас 3 НДС * 2 НП = 6).
Коды и наименования присваиваем соответственно ставкам налогов:
        "_00_0" "Товар без НДС без НП"
        "_20_0" "Товар 20% НДС без НП"
        "_10_5" "Товар 10% НДС 5% НП"

Странные коды? Ничего, зато удобные. Тип кода в справочнике "Номенклатура" - текстовый, поэтому в качестве префикса кода нужно использовать символ меньше нуля (лидирующего в коде). Подчеркивание как раз то, что нужно ("_" < "0"), хотя возможны варианты. Так наша имеющаяся нумерация не собъется. К тому-же в кодах зашиты ставки налогов, так их удобнее искать.

        Теперь о том, как заменить фактическую номенклатуру из справочника на ту, которая будет выгружаться.
В обработке "XMLВыгрузкаДанныхВБухгалтерию" ищем вызов функции:
глПолучитьТаблицуПроводок(ДатаНач, ДатаКон, ФормЮрЛицо).
Она возвращает таблицу значений (в нашем примере Таб), в которой содержится полная информация о проводках (СчетД, СубконтоД1, СубконтоД2, СубконтоД3, СчетК, СубконтоК1, СубконтоК2, СубконтоК3, Сумма, Количество, ВалСумма, Валюта, Содержание, ВклСуммаОперации). Остается только заменить встречающуюся в таблице номенклатуру на специально созданные "мнимые" (или "виртуальные") товары:

Спр
=СоздатьОбъект("Справочник.Номенклатура");
Таб
.ВыбратьСтроки();
Пока
Таб.ПолучитьСтроку()=1 цикл
        Что
=Таб.СубконтоД1;
        //правда, это не все, номенклатура может встречаться не только в "СубконтоД1", но и в других

        Если ТипЗначенияСтр(
Что)="Справочник" тогда
        Иначе
               Продолжить;
        КонецЕсли;
        Если
Что.Вид()="Номенклатура" тогда
        Иначе
               Продолжить;
        КонецЕсли;

        СтавкаНДС
=Что.СтавкаНДС;
        СтавкаНП
=Что.СтавкаНП;
        СпрИмя
="Товар ";
        СпрКод
="_";
        Если
СтавкаНДС=Перечисление.СтавкиНДС.БезНДС тогда
               СпрКод
=СпрКод+"00";
               СпрИмя
=СпрИмя+"без НДС ";
        ИначеЕсли
СтавкаНДС=Перечисление.СтавкиНДС.НДС10 тогда
               СпрКод
=СпрКод+"10";
               СпрИмя
=СпрИмя+"10% НДС ";
        ИначеЕсли
СтавкаНДС=Перечисление.СтавкиНДС.НДС20 тогда
               СпрКод
=СпрКод+"20";
               СпрИмя
=СпрИмя+"20% НДС "
        КонецЕсли;

        СпрКод
=СпрКод+"_"+СокрЛП(СтавкаНП.Ставка);
        СпрИмя
=СпрИмя+СтавкаНП.Наименование+" НП";
        Если
Спр.НайтиПоКоду(СпрКод)=0 тогда
               //Неплохо бы создать новый элемент

               Сообщить(
"Создайте товар: "+СпрИмя+" код: "+СпрКод);
        КонецЕсли;

        Таб
.СубконтоД1=Спр.ТекущийЭлемент();
КонецЦикла;


        Теперь свернем таблицу значений с группировкой по реквизитам:
Таб.Свернуть("СчетД, СубконтоД1, СубконтоД2, СубконтоД3, СчетК, СубконтоК1, СубконтоК2, СубконтоК3, Валюта, Содержание, ВклСуммаОперации", "Сумма, Количество, ВалСумма");
... и можно выгружать данные. Хотя "Количество" теперь потеряло смысл (там теперь сумма по разнам товарам и единицам измерения), так что его проще обнулить (можно во время смены товара).

        Пример процедуры в виде текстового файла лежит здесь.
комментарии   голосование   обсудить на форуме   всего просмотров: 
Используются технологии uCoz


© Царьков Валерий 2000-2002