elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« : 16 Июнь 2008, 08:51:58 » |
|
Как можно получить тип субконто? Т.е. мне нужно получить чем является субконто, точнее в каком справочнике оно хранится. К примеру, субконто СтатьиИздержекОбращения - это Справочник.СтатьиИздережекОбращения - как это получить программно?
|
|
|
|
|
Записан
|
|
|
|
|
alexey
Гость
|
 |
« Ответ #1 : 16 Июнь 2008, 14:44:52 » |
|
ТипСубконто Получить тип субконто.
Синтаксис:
ТипСубконто()
Англоязычный синоним:
SubcontoType
Возвращаемое значение:
Строковое значение, описывающее тип субконто, например "Справочник.Контрагенты".
Описание:
Метод ТипСубконто позволяет определить тип субконто, как он определен в конфигурации.
Пример:
Сообщить("Тип субконто " + ВыбВидСубк1.ТипСубконто());
|
|
|
|
|
Записан
|
|
|
|
elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« Ответ #2 : 17 Июнь 2008, 12:49:48 » |
|
Продолжение!
Как можно программно скопировать проводку (надо только сумму и счет дебета поменять)! Опять же проблема у меня как работать с субкото: Операция.НоваяПроводка (); Операция.Дебет = СчетДт; Операция.<Здесь надо субконто указать (как?)> = .....
|
|
|
|
|
Записан
|
|
|
|
|
JEKA
|
 |
« Ответ #3 : 17 Июнь 2008, 12:55:23 » |
|
Операция.Дебет.МестаХранения = МестоХранения;
Субконто указываешь так, как они прописаны в конфигураторе в "Виды субконто". А вообще можно открыть модуль любого документа и посмотреть процедуру ОбработкаПроведения().
|
|
|
|
|
Записан
|
|
|
|
elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« Ответ #4 : 17 Июнь 2008, 12:59:24 » |
|
Операция.Дебет.МестаХранения = МестоХранения;
Субконто указываешь так, как они прописаны в конфигураторе в "Виды субконто". А вообще можно открыть модуль любого документа и посмотреть процедуру ОбработкаПроведения().
В том то и дело за ранее не известо что за субконто, т.к. счета могут быть разные!
|
|
|
|
« Последнее редактирование: 17 Июнь 2008, 13:02:29 от elvis »
|
Записан
|
|
|
|
|
Vasko
|
 |
« Ответ #5 : 17 Июнь 2008, 14:40:17 » |
|
В том то и дело за ранее не известо что за субконто, т.к. счета могут быть разные!
Могу предложить в цикле перебирать и определять типы субконто для каждого счета
|
|
|
|
|
Записан
|
|
|
|
elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« Ответ #6 : 17 Июнь 2008, 14:46:47 » |
|
Могу предложить в цикле перебирать и определять типы субконто для каждого счета
Согласен. Если можно пример!
|
|
|
|
|
Записан
|
|
|
|
|
Vasko
|
 |
« Ответ #7 : 17 Июнь 2008, 14:56:36 » |
|
Для СчетчикЦикла=1 По Счет.КоличествоСубконто() Цикл Сообщить(Счет.ВидСубконто(СчетчикЦикла).ТипСубконто()); КонецЦикла;
Ничего сложного тут нет :)
|
|
|
|
|
Записан
|
|
|
|
|
Vasko
|
 |
« Ответ #8 : 17 Июнь 2008, 16:00:26 » |
|
Ну как, получилось? Или еще чем помочь? :)
|
|
|
|
|
Записан
|
|
|
|
elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« Ответ #9 : 17 Июнь 2008, 16:09:09 » |
|
Ну как, получилось? Или еще чем помочь? :)
Спасибо, за помощь! Но пока пошел по другому пути, если бух-ра не одобрят придется вернуться к этому!
|
|
|
|
|
Записан
|
|
|
|
elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« Ответ #10 : 18 Июнь 2008, 14:27:52 » |
|
Ну как, получилось? Или еще чем помочь? :)
Нужна помощь! Всеже не допираю, как можно сделать следующее в документе нужно отобрать все проводки с Дт 44.1 и сторнировать их. Вот делаю так: СчКр = ДокОперация.Операция.Кредит.Счет; СчДт = ДокОперация.Операция.Кредит.Счет; Сумма = ДокОперация.Операция.Сумма; Субконто1Дт = ДокОперация.Операция.Дебет.Субконто (1); Субконто2Дт = ДокОперация.Операция.Дебет.Субконто (2); Субконто1Кт = ДокОперация.Операция.Кредит.Субконто (1); Субконто2Кт = ДокОперация.Операция.Кредит.Субконто (2); //Сторнируем проводки с дебетом 44.1 ДокОперация.Операция.НоваяПроводка (); ДокОперация.Операция.Дебет = СчДт; ДокОперация.Операция.Кредит = СчКр; ДокОперация.Операция.Сумма = Сумма; //А вот дальше ДокОперация.Операция.<как здесь указать субконто если счет за ранее не известе> = Субконто1Дт;
Помогите, плиз!
|
|
|
|
|
Записан
|
|
|
|
|
Vasko
|
 |
« Ответ #11 : 18 Июнь 2008, 16:01:35 » |
|
Если субконто на счете неизвестны - их можно получить в цикле, как я показывал в предыдущем примере. Метод ВидСубконто(НомерСубконто) возвращает значение субконто с соответствующим номером. Тут, наверное, тоже надо в цикле все это дело выпонять - проводок у одного документа может быть много. И выбирать, используя методы, например, ВыбратьОперацию(), НайтиОперацию(), ВыбратьПроводки(), и другие аналогичные методы. Сейчас просто времени нет, а так бы подробно посмотрел. Могу только скинуть пример я сам делал, но для другого случая - попробуй разобраться.
Опер.ВыбратьОперации(НачалоПериода, КонецПериода); Пока Опер.ПолучитьОперацию()=1 Цикл Док=Опер.Документ.ТекущийДокумент(); Если НЕ ((Док.Вид()="Операция") Или (Док.Вид()="СписаниеДенежныхСредствРасчеты") Или (Док.Вид()="ПоступлениеДенежныхСредствРасчеты")) Тогда Продолжить; КонецЕсли; Опер.ВыбратьПроводки(); Пока Опер.ПолучитьПроводку()=1 Цикл СчетДт=Опер.Дебет.Счет; СчетКт=Опер.Кредит.Счет; ПустДт1=Опер.Дебет.Субконто(1); ПустДт2=Опер.Дебет.Субконто(2); ПустДт3=Опер.Дебет.Субконто(3); ПустКт1=Опер.Кредит.Субконто(1); ПустКт2=Опер.Кредит.Субконто(2); ПустКт3=Опер.Кредит.Субконто(3);
КонецЦикла; КонецЦикла;
Здесь я перебираю все операции за указанный период, Делаю отбор по нескольким видам документов и вытаскиваю у них счета в проводках. Тебе же нужно сразу отбирать операции по одному конкретному документу, а не его виду, а потом перебирать у него проводки, отбирая их по 44-ому счету, а потом только уже получать виды и значения субконто. Затем можно пихать их в таблицу, потом перебирая строки этой табицы формировать обратные проводки
|
|
|
|
« Последнее редактирование: 18 Июнь 2008, 16:03:45 от Durt »
|
Записан
|
|
|
|
elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« Ответ #12 : 18 Июнь 2008, 16:08:34 » |
|
Все равно теперь косяк такой:
ДокОперация.Операция.НоваяПроводка (); {Документ.РаспредЗатрат.Модуль Документа(68)}: Недопустимая операция
он ругается на это:
СчКр = ДокОперация.Операция.Кредит.Счет; СчДт = ДокОперация.Операция.Кредит.Счет; Сумма = ДокОперация.Операция.Сумма; Субконто1Дт = ДокОперация.Операция.Дебет.Субконто (1); Субконто2Дт = ДокОперация.Операция.Дебет.Субконто (2); Субконто1Кт = ДокОперация.Операция.Кредит.Субконто (1); Субконто2Кт = ДокОперация.Операция.Кредит.Субконто (2); //Сторнируем проводки с дебетом 44.1 ДокОперация.Операция.НоваяПроводка ();<<<<<<<здесь ДокОперация.Операция.Дебет = СчДт; ДокОперация.Операция.Кредит = СчКр; ДокОперация.Операция.Сумма = Сумма;
|
|
|
|
|
Записан
|
|
|
|
|
Vasko
|
 |
« Ответ #13 : 18 Июнь 2008, 16:11:50 » |
|
Ты их ручной операцией сторнируешь ??? Если да, то там как вроде хитро это делается. Я тебе попозже напишу как.
|
|
|
|
|
Записан
|
|
|
|
elvis
Пользователь

Карма: +2/-0
Offline
Сообщений: 83
|
 |
« Ответ #14 : 18 Июнь 2008, 16:14:36 » |
|
Ты их ручной операцией сторнируешь ??? Если да, то там как вроде хитро это делается. Я тебе попозже напишу как.
Точнее там выгрузка из ЗиК, она ведь и идет как Операция. Буду ждать!!! Но я так понял что нелья в докумнет тупа дописать проводку!
|
|
|
|
|
Записан
|
|
|
|
|