Полигон 1С
06 Февраль 2012, 10:04:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: НОВЫЕ РАЗДЕЛЫ НА ФОРУМЕ: РАБОТА И ОБРАЗОВАНИЕ, КЛУБ ПУТЕШЕСТВЕННИКОВ, БЫТОВАЯ ТЕХНИКА, ПОЛИТИКА И ЭКОНОМИКА, ЗДОРОВЬЕ, БИБЛИОТЕКА, КУХНЯ, БАРНАЯ СТОЙКА
Расширенный поиск  
Страниц: [1] 2 3   Вниз
Печать
Автор Тема: Тип Субконто!  (Прочитано 6981 раз)
0 Пользователей и 1 Гость смотрят эту тему.
elvis
Пользователь
**

Карма: +2/-0
Offline Offline

Сообщений: 83


« : 16 Июнь 2008, 08:51:58 »

Как можно получить тип субконто?
Т.е. мне нужно получить чем является субконто, точнее в каком справочнике оно хранится.
К примеру, субконто СтатьиИздержекОбращения - это Справочник.СтатьиИздережекОбращения - как это получить программно?
Записан
alexey
Гость
« Ответ #1 : 16 Июнь 2008, 14:44:52 »

ТипСубконто
Получить тип субконто.

Синтаксис:

ТипСубконто()

Англоязычный синоним:

SubcontoType

Возвращаемое значение:

Строковое значение, описывающее тип субконто, например "Справочник.Контрагенты".

Описание:

Метод ТипСубконто позволяет определить тип субконто, как он определен в конфигурации.

Пример:

Сообщить("Тип субконто " + ВыбВидСубк1.ТипСубконто());
Записан
elvis
Пользователь
**

Карма: +2/-0
Offline Offline

Сообщений: 83


« Ответ #2 : 17 Июнь 2008, 12:49:48 »

Продолжение!

Как можно программно скопировать проводку (надо только сумму и счет дебета поменять)!
Опять же проблема у меня как работать с субкото:
Операция.НоваяПроводка ();
Операция.Дебет = СчетДт;
Операция.<Здесь надо субконто указать (как?)> = .....
Записан
JEKA
Администратор
*****

Карма: +67/-2
Offline Offline

Сообщений: 4627


ГЫ-ГЫ


WWW
« Ответ #3 : 17 Июнь 2008, 12:55:23 »

Операция.Дебет.МестаХранения = МестоХранения;

Субконто указываешь так, как они прописаны в конфигураторе в "Виды субконто". А вообще можно открыть модуль любого документа и посмотреть процедуру ОбработкаПроведения().
Записан

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

Карма: +2/-0
Offline Offline

Сообщений: 83


« Ответ #4 : 17 Июнь 2008, 12:59:24 »

Операция.Дебет.МестаХранения = МестоХранения;

Субконто указываешь так, как они прописаны в конфигураторе в "Виды субконто". А вообще можно открыть модуль любого документа и посмотреть процедуру ОбработкаПроведения().

В том то и дело за ранее не известо что за субконто, т.к. счета могут быть разные!
« Последнее редактирование: 17 Июнь 2008, 13:02:29 от elvis » Записан
Vasko
Ветеран
*****

Карма: +8/-0
Offline Offline

Сообщений: 577



« Ответ #5 : 17 Июнь 2008, 14:40:17 »

В том то и дело за ранее не известо что за субконто, т.к. счета могут быть разные!
Могу предложить в цикле перебирать и определять типы субконто для каждого счета
Записан
elvis
Пользователь
**

Карма: +2/-0
Offline Offline

Сообщений: 83


« Ответ #6 : 17 Июнь 2008, 14:46:47 »

Могу предложить в цикле перебирать и определять типы субконто для каждого счета

Согласен.
Если можно пример!
Записан
Vasko
Ветеран
*****

Карма: +8/-0
Offline Offline

Сообщений: 577



« Ответ #7 : 17 Июнь 2008, 14:56:36 »

Для СчетчикЦикла=1 По Счет.КоличествоСубконто() Цикл
       Сообщить(Счет.ВидСубконто(СчетчикЦикла).ТипСубконто());
КонецЦикла;

Ничего сложного тут нет  :)
Записан
Vasko
Ветеран
*****

Карма: +8/-0
Offline Offline

Сообщений: 577



« Ответ #8 : 17 Июнь 2008, 16:00:26 »

Ну как, получилось? Или еще чем помочь?  :)
Записан
elvis
Пользователь
**

Карма: +2/-0
Offline Offline

Сообщений: 83


« Ответ #9 : 17 Июнь 2008, 16:09:09 »

Ну как, получилось? Или еще чем помочь?  :)

Спасибо, за помощь!
Но пока пошел по другому пути, если бух-ра не одобрят придется вернуться к этому!
Записан
elvis
Пользователь
**

Карма: +2/-0
Offline Offline

Сообщений: 83


« Ответ #10 : 18 Июнь 2008, 14:27:52 »

Ну как, получилось? Или еще чем помочь?  :)

Нужна помощь!
Всеже не допираю, как можно сделать следующее
в документе нужно отобрать все проводки с Дт 44.1 и сторнировать их.
Вот делаю так:
 СчКр   = ДокОперация.Операция.Кредит.Счет;
СчДт   = ДокОперация.Операция.Кредит.Счет;
Сумма  = ДокОперация.Операция.Сумма;
Субконто1Дт = ДокОперация.Операция.Дебет.Субконто (1);
Субконто2Дт = ДокОперация.Операция.Дебет.Субконто (2);
Субконто1Кт = ДокОперация.Операция.Кредит.Субконто (1);
Субконто2Кт = ДокОперация.Операция.Кредит.Субконто (2);
//Сторнируем проводки с дебетом 44.1
ДокОперация.Операция.НоваяПроводка ();
ДокОперация.Операция.Дебет  = СчДт;
ДокОперация.Операция.Кредит = СчКр;
ДокОперация.Операция.Сумма = Сумма;
//А вот дальше
ДокОперация.Операция.<как здесь указать субконто если счет за ранее не известе> = Субконто1Дт;

Помогите, плиз!
Записан
Vasko
Ветеран
*****

Карма: +8/-0
Offline Offline

Сообщений: 577



« Ответ #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 Offline

Сообщений: 83


« Ответ #12 : 18 Июнь 2008, 16:08:34 »

Все равно теперь косяк такой:

ДокОперация.Операция.НоваяПроводка ();
{Документ.РаспредЗатрат.Модуль Документа(68)}: Недопустимая операция

он ругается на это:

СчКр   = ДокОперация.Операция.Кредит.Счет;
СчДт   = ДокОперация.Операция.Кредит.Счет;
Сумма  = ДокОперация.Операция.Сумма;
Субконто1Дт = ДокОперация.Операция.Дебет.Субконто (1);
Субконто2Дт = ДокОперация.Операция.Дебет.Субконто (2);
Субконто1Кт = ДокОперация.Операция.Кредит.Субконто (1);
Субконто2Кт = ДокОперация.Операция.Кредит.Субконто (2);
//Сторнируем проводки с дебетом 44.1
ДокОперация.Операция.НоваяПроводка ();<<<<<<<здесь
ДокОперация.Операция.Дебет  = СчДт;
ДокОперация.Операция.Кредит = СчКр;
ДокОперация.Операция.Сумма = Сумма;
Записан
Vasko
Ветеран
*****

Карма: +8/-0
Offline Offline

Сообщений: 577



« Ответ #13 : 18 Июнь 2008, 16:11:50 »

Ты их ручной операцией сторнируешь  ???  Если да, то там как вроде хитро это делается. Я тебе попозже напишу как.
Записан
elvis
Пользователь
**

Карма: +2/-0
Offline Offline

Сообщений: 83


« Ответ #14 : 18 Июнь 2008, 16:14:36 »

Ты их ручной операцией сторнируешь  ???  Если да, то там как вроде хитро это делается. Я тебе попозже напишу как.

Точнее там выгрузка из ЗиК, она ведь и идет как Операция.
Буду ждать!!!
Но я так понял что нелья в докумнет тупа дописать проводку!
Записан
Страниц: [1] 2 3   Вверх
Печать
 
Перейти в:  

�������@Mail.ru Rambler Top100
 
Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | © 2008 Полигон 1С