7.7 Товар со счета на счет

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем AD1986, 26 авг 2011.

  1. TopicStarter Overlay
    AD1986
    Offline

    AD1986 Опытный в 1С

    Регистрация:
    8 фев 2011
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Здоаствуйте у меня есть счет 41.1 и 41.6(товары на упокавку) мне нужно в поступление товара что бы когда пришел товар с другой организации тоетсь с упаковки на приходе он проводился в обратно порядке с 41.6 на 41.1. Подскажите где изменить код или как лучше сделать очень нужно. 1с 7.7 Предприятие.

    Вложения:

    • 222.txt
      Размер файла:
      7 КБ
      Просмотров:
      33
  2. TopicStarter Overlay
    AD1986
    Offline

    AD1986 Опытный в 1С

    Регистрация:
    8 фев 2011
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    вот код
    Код:
      
    
    //_____________________________________________________________________________
    Процедура ОбработкаПроведения()
    Перем ТаблицаПокупок,АвтоКП;
    // Авт. кн. покупок 
    юАвтоКП(1,АвтоКП,Договор,ТаблицаПокупок); 
    Сч18  = СчетПоКоду("18.4"); // НДС по приобретенным товарам
    Сч41_1 = СчетПоКоду("41.1");
    Сч41_2 = СчетПоКоду("41.2");
    Сч41_3 = СчетПоКоду("41.3");
    Сч41_4 = СчетПоКоду("41.4");
    Сч004  = СчетПоКоду("004");
    Если Договор.Валютный=1 Тогда
    Сч61 = СчетПоКоду("60.5"); // СчетПоКоду("61.2");
    Иначе    
    Сч61 = СчетПоКоду("60.4");
    КонецЕсли;
    
    Если ВидПоставщика = Перечисление.ВидПоставщика.Поставщики Тогда
    Если Договор.Валютный=1 Тогда
    Сч60 = СчетПоКоду("60.2");
    Иначе    
    Сч60 = СчетПоКоду("60.1");
    КонецЕсли;
    Иначе
    Если Договор.Валютный=1 Тогда
    Сч60 = СчетПоКоду("76.2");
    Иначе    
    Сч60 = СчетПоКоду("76.1");
    КонецЕсли;
    КонецЕсли;
    
    спрПарт = СоздатьОбъект("Справочник.ПартииТоваров");
    
    СуммаПоставки = Итог("Всего");
    СуммаНДС_18   = Итог("НДС");
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Если Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Товар Тогда
    глОшибкаПроведения(Контекст, "Номенклатурная единица "+Товар+" не является товаром.");
    СтатусВозврата(0); Возврат;
    КонецЕсли;
    
    Если Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии Тогда
    СчетУчета = Сч004;
    УчетнаяСтоимость = Всего;
    СуммаНДС_18 = СуммаНДС_18 - НДС;
    СуммаПоставки = СуммаПоставки - Всего;
    ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
    СчетУчета = Сч41_3;
    УчетнаяСтоимость = Сумма;
    ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.ПокупныеИзделия Тогда
    СчетУчета = Сч41_4;
    УчетнаяСтоимость = Сумма;
    Иначе //Если Товар.ТипТовара = Перечисление.ТипыТоваров.Собственный Тогда
    Если ВидПоступления = 2 Тогда //розница
    СчетУчета = Сч41_2;
    УчетнаяСтоимость = Всего;
    СуммаНДС_18 = СуммаНДС_18 - НДС;
    Иначе //Если ВидПоступления = 2 Тогда опт
    СчетУчета = Сч41_1;
    УчетнаяСтоимость = Сумма;
    КонецЕсли;
    КонецЕсли;
    
    Если Наценка > 20 Тогда
    Сообщить("В строке №"+НомерСтроки+" совокупная наценка > 20% !");
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    
    
    спрпарт.ИспользоватьВладельца(Товар);
    спрПарт.Новый();
    
    спрПарт.Наименование = Строка(Товар.Наименование+"/"+спрПарт.Код+"/"+ДатаДок);
    Если Договор.Валюта.Выбран() = 1 Тогда
    спрПарт.ЦенаПост     = ЦенаИмпорт*Договор.Валюта.Курс.Получить(ДатаДок);
    спрПарт.УчЦена       = Цена*Договор.Валюта.Курс.Получить(ДатаДок);
    Иначе
    спрПарт.ЦенаПост     = ЦенаИмпорт;
    спрПарт.УчЦена       = Цена;
    КонецЕсли;
    спрПарт.Поставщик    = Контрагент;
    спрПарт.ДатаПост     = ДатаДок;
    спрПарт.Наценка      = Наценка;
    спрПарт.Записать();
    
    Партия = спрПарт.ТекущийЭлемент();
    
    Операция.НоваяПроводка();
    Операция.СодержаниеПроводки = "Поступили товары";
    Операция.НомерЖурнала = "ТВ";
    Операция.Дебет.Счет = СчетУчета;
    Если СчетУчета = Сч004 Тогда
    Операция.Дебет.Номенклатура  = Товар;       
    Операция.Дебет.ПартииТовара  = спрПарт.ТекущийЭлемент();
    Операция.Дебет.Контрагенты   = Контрагент;
    Операция.Дебет.МестаХранения = МестоХранения;
    Иначе
    Операция.Дебет.Номенклатура  = Товар;
    Операция.Дебет.ПартииТовара  = спрПарт.ТекущийЭлемент();
    Операция.Дебет.МестаХранения = МестоХранения;
    
    Операция.Кредит.Счет        = Сч60;
    Операция.Кредит.Контрагенты = Контрагент;
    Операция.Кредит.Основание   = Договор;
    КонецЕсли;
    Операция.Количество = Количество;
    Если Договор.Валютный=1 Тогда
    Если СчетУчета <> Сч004 Тогда
    Операция.Валюта   = Договор.Валюта;
    Операция.ВалСумма = УчетнаяСтоимость;     
    КонецЕсли;
    Курс = ПолучитьКурс(Договор.Валюта,ДатаДок);
    Операция.Сумма=УчетнаяСтоимость*Курс;
    Иначе
    Операция.Сумма = УчетнаяСтоимость;
    КонецЕсли;
    Если (АвтоКП=1) И (СчетУчета <> Сч004) Тогда
    ТаблицаПокупок.НоваяСтрока();
    ТаблицаПокупок.Товар = Товар; 
    ТаблицаПокупок.Всего = Всего;
    ТаблицаПокупок.Сумма = Сумма; 
    ТаблицаПокупок.НДС   = НДС;
    ТаблицаПокупок.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЦикла;
    
    
    Если СуммаНДС_18 <> 0 Тогда
    Операция.НоваяПроводка();
    Операция.СодержаниеПроводки = "Выделен НДС";
    Операция.НомерЖурнала = "ТВ";
    Операция.Дебет.Счет = Сч18;
    Операция.Дебет.Контрагенты = Контрагент;
    Операция.Кредит.Счет = Сч60;
    Операция.Кредит.Контрагенты = Контрагент;
    Операция.Кредит.Основание = Договор;
    Если Договор.Валютный=1 Тогда
    Операция.Валюта=Договор.Валюта;
    Операция.ВалСумма=СуммаНДС_18;     
    Курс = ПолучитьКурс(Договор.Валюта,ДатаДок);
    Операция.Сумма=СуммаНДС_18*Курс;
    Иначе
    Операция.Сумма = СуммаНДС_18;
    КонецЕсли;
    КонецЕсли;
    
    Если СуммаПоставки > 0 Тогда
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
    БухИт.ИспользоватьСубконто(ВидыСубконто.Основание,Договор,2);
    БухИт.ВыполнитьЗапрос(,ТекущийДокумент(),Сч61);
    Аванс = БухИт.СКД();
    ЗачетАванса = Мин(СуммаПоставки, Аванс);
    Если ЗачетАванса > 0 Тогда
    Операция.НоваяПроводка();
    Операция.СодержаниеПроводки = "Зачтен аванс";
    Операция.НомерЖурнала = "ТВ";
    Операция.Дебет.Счет = Сч60;
    Операция.Дебет.Контрагенты = Контрагент;
    Операция.Дебет.Основание = Договор;
    Операция.Кредит.Счет = Сч61;
    Операция.Кредит.Контрагенты = Контрагент;
    Операция.Кредит.Основание = Договор;
    Если Договор.Валютный=1 Тогда
    Операция.Валюта=Договор.Валюта;
    Операция.ВалСумма=ЗачетАванса;
    Курс = ПолучитьКурс(Договор.Валюта,ДатаДок);
    Операция.Сумма=ЗачетАванса*Курс;
    Иначе
    Операция.Сумма = ЗачетАванса;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    Если АвтоКП=1 Тогда 
    юДляЗаполненияАвтоКнигиПокупок(Контекст, ТаблицаПокупок);
    КонецЕсли;
    Операция.Записать();
    КонецПроцедуры
    
    //_____________________________________________________________________________
    
    //Процедура ОбработкаУдаленияПроведения()
    //	
    //	тз  = СоздатьОбъект("ТаблицаЗначений");
    //	сз  = СоздатьОбъект("СписокЗначений");	
    //	спр = СоздатьОбъект("Справочник.ПартииТоваров");
    //	
    //	ВыбратьСтроки();
    //	Пока ПолучитьСтроку() = 1 Цикл
    //		сз.ДобавитьЗначение(Партия);
    //	КонецЦикла;
    //	
    //	НайтиСсылки(сз,тз);
    //	
    //	тз.ВыбратьСтроки();
    //	Пока тз.ПолучитьСтроку() = 1 Цикл
    //		Если тз.ПолучитьЗначение(тз.НомерСтроки,2) = ТекущийДокумент() Тогда
    //			тз.УдалитьСтроку();
    //			тз.ВыбратьСтроки();
    //		КонецЕсли;
    //	КонецЦикла;
    //	
    //	Если тз.КоличествоСтрок() > 0 Тогда
    //		ОткрытьФорму("Обработка.ВыводТаблицыСсылок",тз);
    //		СтатусВозврата(0);
    //		Возврат;
    //	Иначе
    //		ВыбратьСтроки();
    //		Пока ПолучитьСтроку() = 1 Цикл
    //			Партия = 0;
    //		КонецЦикла;
    //		
    //		Для н = 1 По сз.РазмерСписка() Цикл
    //			Если спр.НайтиЭлемент(сз.ПолучитьЗначение(н)) = 1 Тогда
    //				спр.Удалить(1);
    //			КонецЕсли;
    //		КонецЦикла;
    //	КонецЕсли;
    //	
    //КонецПроцедуры
    
    //_____________________________________________________________________________
    
    
    
    извеняюсь на файлы нельзя прикрепить погите плиз
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Если я вас правиль полял то так
    Код:
    Если ТутУсловиеПоФирме Тогда
    Сч41_1 = СчетПоКоду("41.1");
    Иначе
    Сч41_1 = СчетПоКоду("41.6");
    КонецЕсли;
    
    
    Есть непременное условие: субконто по счетам 41.1 и 41.6 должны
    совпадать иначе вышеописанного кода не достаточно

Поделиться этой страницей