7.7 Помогите с проведением(Как сделать Выбор счета по кредету)

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем andersss, 4 июл 2009.

  1. TopicStarter Overlay
    andersss
    Offline

    andersss

    Регистрация:
    4 июл 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Подскажите пожалусто: Конфа Бухгалтерия. Как Сделать Выбор счета по кредету. Это док по учету Эл. энергии, В документе есть реквизит тариф(Справочник.Материалы) В Спр. есть даже реквизит СубСчет10 у меня расчет по трем тарифам и суб.счет должен меняться в проводке в зависимости от выбранного тарифа. как это делать
    Код:
    Процедура ОбработкаПроведения()
    
    
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    
    Операция.НоваяПроводка();
    Операция.Дебет.Счет = СчетПоКоду("76.5",ПланыСчетов.Основной);
    Операция.Дебет.Контрагенты = Контрагент;
    Если Тариф.ПолучитьЗначение(,Тариф)="День" Тогда
    Операция.Кредит.Счет = СчетПоКоду("10.4",ПланыСчетов.Основной);
    Операция.Кредит.Субконто(1,Тариф.Наименование);
    Операция.Кредит.Субконто(2,Контрагент);
    КонецЕсли;
    Если Тариф.ПолучитьЗначение(,Тариф)="Ночь" Тогда
    Операция.Кредит.Счет = СчетПоКоду("10.5",ПланыСчетов.Основной);
    Операция.Кредит.Субконто(1,Тариф.Наименование);
    Операция.Кредит.Субконто(2,Контрагент);
    КонецЕсли;
    Если Тариф.ПолучитьЗначение(,Тариф)="Однотариф" Тогда
    Операция.Кредит.Счет = СчетПоКоду("10.3",ПланыСчетов.Основной);
    Операция.Кредит.Субконто(1,Тариф.Наименование);
    Операция.Кредит.Субконто(2,Контрагент);
    КонецЕсли;
    
    Если (Операция.Дебет.Счет.Количественный = 1) Или (Операция.Кредит.Счет.Количественный = 1) Тогда
    Операция.Количество = КвчИзрасходованно;
    КонецЕсли;
    Операция.Сумма = Сумма;
    
    КонецЦикла;
    
    Операция.Содержание = Контрагент;
    Операция.Записать();
    
    
    КонецПроцедуры
    
    Как тут надо прописать Что бы Счет Кредита подставлялся в зависимости от тарифа?
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Непонятно что это за лажа:
    Код:
    Если Тариф.ПолучитьЗначение(,Тариф)="День" Тогда 
    
    
    Тариф это разве СписокЗначений или все-таки реквизит табличной части???? Если определять по имени, то нужно так:

    Код:
    Если СокрЛП(Тариф.Наименование)="День" Тогда
    
    
    Все остальное - по аналогии. Должно работать
  3. InterL@mersh@
    Offline

    InterL@mersh@

    Регистрация:
    17 июл 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Думаю примерно так:
    Код:
    Процедура ОбработкаПроведения()
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    
    Операция.НоваяПроводка();
    Операция.Дебет.Счет = СчетПоКоду("76.5",ПланыСчетов.Основной);
    Операция.Дебет.Контрагенты = Контрагент;
    //Это только при условии что Тариф это реквизит с типом Справочник.Материалы и СубСчет10 тип Счет
    Операция.Кредит.Счет = Тариф.СубСчет10;
    Операция.Кредит.Субконто(1,Тариф.Наименование);
    Операция.Кредит.Субконто(2,Контрагент);
    
    Если (Операция.Дебет.Счет.Количественный = 1) Или (Операция.Кредит.Счет.Количественный = 1) Тогда
    Операция.Количество = КвчИзрасходованно;
    КонецЕсли;
    Операция.Сумма = Сумма;
    
    КонецЦикла;
    
    Операция.Содержание = Контрагент;
    Операция.Записать();
    КонецПроцедуры
    
    
    
    Хотя мне не совсем понятно, тариф это реквизит табличной части или реквизит шапки...
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Процедура ОбработкаПроведения()
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    
    Операция.НоваяПроводка();
    Операция.Дебет.Счет = СчетПоКоду("76.5");
    Операция.Дебет.Контрагенты = Контрагент;
    //Это только при условии что Тариф это реквизит с типом Справочник.Материалы и СубСчет10 тип Счет
    //в модуле документа (или здесь) поставь проверку на наличие субсчета
    Операция.Кредит.Счет = Тариф.СубСчет10;
    Операция.Кредит.Материалы=Тариф; //.Наименование - это строка, а суконто - справочник
    Операция.Кредит.МестаХранения=Склад; //второе субконто у 10 МестоХранения, а не Контрагент
    
    //зачем делать  проверку на количественный счет? 
    Операция.Количество = КвчИзрасходованно;
    Операция.Сумма = Сумма;
    
    КонецЦикла;
    
    Операция.Содержание = Контрагент;
    Операция.Записать();
    КонецПроцедуры
    
    
    
    
    Это код если у мебя Тариф - реквизит табличной части. Если шапки - убери цикл по строкам

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