Имя: Пароль:
1C
1С v8
Помогите выбрать субконто
0 koketka
 
13.09.11
16:42
Пишу обработку обнуление счетов. В форме обработки выбираю счет. Через запрос вытаскиваю остатки по счету. Делаю отрицательную проводку по счету для обнуления.
В реале документ и бух операция проводится, но субконто не выбирается если делаю так
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты]= ВыборкаДетали.Субконто1;
то субконто выбирается, но у меня счет может быть любой и тип субконто тоже.
если делаю так Проводка.СубконтоДт[1]= ВыборкаДетали.Субконто2;
то субконто не выбирается?
1 hhhh
 
13.09.11
16:51
почему там Кт, а тут Дт?
2 а кому щас легко
 
13.09.11
16:54
Держи:

Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
   |    ХозрасчетныйОстатки.Счет КАК Счет,
   |    ХозрасчетныйОстатки.Субконто1,
   |    ХозрасчетныйОстатки.Субконто2,
   |    ХозрасчетныйОстатки.Субконто3,
   |    ХозрасчетныйОстатки.СуммаОстатокДт,
   |    ХозрасчетныйОстатки.СуммаОстатокКт,
   |    ХозрасчетныйОстатки.КоличествоОстатокДт,
   |    ХозрасчетныйОстатки.КоличествоОстатокКт
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Остатки(
   |            &НаДату,
   |            Счет <> &Счет_01_01
   |                И Счет <> &Счет_02_01
   |                И Счет <> &Счет_02_02
   |                И Счет <> &Счет_03_03
   |                И Счет <> &Счет_03_09,
   |            ,
   |            Организация = &Организация) КАК ХозрасчетныйОстатки
   |ГДЕ
   |    ХозрасчетныйОстатки.Счет.Забалансовый = ЛОЖЬ
   |
   |УПОРЯДОЧИТЬ ПО
   |    Счет";
   Запрос.УстановитьПараметр("Организация",Организация);
   Запрос.УстановитьПараметр("НаДату",НаДату);
   Запрос.УстановитьПараметр("Счет_01_01",ПланыСчетов.Хозрасчетный.ОСвОрганизации);
   Запрос.УстановитьПараметр("Счет_02_01",ПланыСчетов.Хозрасчетный.АмортизацияОС_01);
   Запрос.УстановитьПараметр("Счет_02_02",ПланыСчетов.Хозрасчетный.АмортизацияОС_03);
   Запрос.УстановитьПараметр("Счет_03_03",ПланыСчетов.Хозрасчетный.МЦ_ПредоставленныеВоВременноеПользование);
   Запрос.УстановитьПараметр("Счет_03_09",ПланыСчетов.Хозрасчетный.ВыбытиеМЦ);
   
   ТЗ = Запрос.Выполнить().Выгрузить();
   
   
   //возврат;
   
   ДокОперация = Документы.ОперацияБух.СоздатьДокумент();
   ДокОперация.Дата = НаДату;
   ДокОперация.Организация = Организация;
   ДокОперация.Ответственный = ПараметрыСеанса.ТекущийПользователь;
   ДокОперация.Содержание = "Сторнировка на дату ввода нач остатков";
   ДокОперация.Комментарий = "#Сторнировка на дату ввода нач остатков#";
   ДокОперация.Записать();
   
   ДокОперацияСсылка = ДокОперация.Ссылка;
   
   РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка;
   
   НачатьТранзакцию();
   
   Для Каждого Текстрока Из ТЗ Цикл
       
       РегЗапись = РегХозрасчетный.Добавить();
       РегЗапись.Период =  ДокОперацияСсылка.Дата;
       РегЗапись.Регистратор = ДокОперацияСсылка;
       РегЗапись.Организация = Организация;
       РегЗапись.Содержание  = "Сторнировка на дату ввода нач остатков";
       Если Текстрока.СуммаОстатокДт <> 0 Тогда
           РегЗапись.СчетДт = Текстрока.Счет;
           БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, 1, Текстрока.Субконто1);
           БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, 2, Текстрока.Субконто2);
           БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, 3, Текстрока.Субконто3);
                       
           РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный;
           
           РегЗапись.КоличествоДт = -Текстрока.КоличествоОстатокДт;
           РегЗапись.Сумма = -Текстрока.СуммаОстатокДт;
           
       Иначе
           РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.Вспомогательный;        
           
           РегЗапись.СчетКт = Текстрока.Счет;
           БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, 1, Текстрока.Субконто1);
           БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, 2, Текстрока.Субконто2);
           БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, 3, Текстрока.Субконто3);

           РегЗапись.КоличествоКт = -Текстрока.КоличествоОстатокКт;
           РегЗапись.Сумма = -Текстрока.СуммаОстатокКт;
       КонецЕсли;        
       //Прервать;
   КонецЦикла;
   
   РегХозрасчетный.Записать();
   
   ЗафиксироватьТранзакцию();
   
   
   ф = ДокОперацияСсылка.ПолучитьФорму();
   ф.Открыть();
3 koketka
 
13.09.11
16:55
(2) Спасибо сейчас попробую!
4 GoldenDawn
 
13.09.11
16:55
"БухгалтерскийУчет."
это крутотень )))