Имя: Пароль:
1C
1С v8
Консолидация запрос к РБ 77
0 PalexRF
 
04.08.14
13:49
Добрый день.
Вопрос по запросу из 1С консолидации к базе 77.
Каким образом при обращении к регистру бухгалтерии 77 можно сделать фильтры:
1. по текстовому наименованию субконто.
2. по группе в иерархии.
1 Ёпрст
 
гуру
04.08.14
13:50
в клюшках нет понятия регистр бухгалтерии
2 lxndr
 
04.08.14
13:53
(0)
1. напрямую никак. Но можно извратиться, например через произвольный код.
2. отбор с видом сравнения "В"
3 PalexRF
 
04.08.14
13:54
(2) подразумевается произвольный запрос или функция на встроенном языке?
4 lxndr
 
04.08.14
14:04
(3) в точности не помню, под рукой конфы нет. Вроде функция на встроенном языке больше позволить должна.
5 PalexRF
 
04.08.14
14:07
(4) а можно где-то посмотреть примеры получения из 77 с помощью функций на встроенном языке?
6 lxndr
 
04.08.14
14:13
(5) если не сильно срочно, доеду домой, расковыряю архивы
7 PalexRF
 
04.08.14
14:29
(6) срочно, но буду ждать ) в интернете ни одного полного примера так и не нашел.
8 PalexRF
 
04.08.14
19:30
все-таки научился )

/////////////////////////////////////////////////////////////////////////////
// Необходимо заполнить таблицу значений операнда следующего вида:

ТаблицаЗначенийОперанда=Новый ТаблицаЗначений;
ТаблицаЗначенийОперанда.Колонки.Добавить("КодОперанда");
ТаблицаЗначенийОперанда.Колонки.Добавить("Аналитика1");
ТаблицаЗначенийОперанда.Колонки.Добавить("Аналитика2");
    
ТаблицаЗначенийОперанда.Колонки.Добавить("Значение",ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(18,5));
ТаблицаЗначенийОперанда.Колонки.Добавить("ИтогПоПоказателю",ОбщегоНазначения.ПолучитьОписаниеТиповБулево());
ТаблицаЗначенийОперанда.Индексы.Добавить("КодОперанда");

//                     Подключение к базе 77
База="";
База=Новый COMОбъект("V77.Application");
Попытка
    СтрокаПодключения = "/D"""+ДанныеОбъекта.ИспользуемаяИБ.КаталогИБ+""" /N"""+ДанныеОбъекта.ИспользуемаяИБ.Пользователь+""" /P"""+ДанныеОбъекта.ИспользуемаяИБ.Пароль+"""";
    Открыта=База.Initialize(База.RMTrade,СтрокаПодключения,"NO_SPLASH_SHOW");
Если Открыта Тогда
    ЕстьПодключение = Истина;
Иначе
    Предупреждение("Ошибка при подключении!");
    ЕстьПодключение = Ложь;
КонецЕсли;
Исключение
    Предупреждение("Ошибка при подключении!");
    ЕстьПодключение = Ложь;
КонецПопытки;
    


ОлеКонтр = База.CreateObject("Справочник.Контрагенты");
ОлеКонтр.ВыбратьЭлементы();
ОлеКонтр.НайтиПоНаименованию("Свои",1,1);

ОлеСубподряд = База.CreateObject("Справочник.ВидыНоменклатуры");
ОлеСубподряд.ВыбратьЭлементы();
ОлеСубподряд.НайтиПоНаименованию("Субподряд",1,1);


Ит = База.CreateObject("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(База.EvalExpr("ВидыСубконто.Контрагенты"),ОлеКонтр);
Ит.ИспользоватьКорСубконто(База.EvalExpr("ВидыСубконто.ВидыНоменклатуры"),ОлеСубподряд,2);

КодВыбСчета77 = "62.1";
КодВыбКорСчета77 = "90.1.1";
Если Ит.ВыполнитьЗапрос(ДанныеОбъекта.ПериодОтчета.ДатаНачала,ДанныеОбъекта.ПериодОтчета.ДатаОкончания ,КодВыбСчета77, КодВыбКорСчета77,"",2) <> 0 Тогда
    
    Ит.ВыбратьСубконто();
    пока Ит.ПолучитьСубконто(1) = 1 цикл
        Сообщить(Ит.Субконто(1).Наименование + "  " + Ит.ДО() + "  " +  Ит.Субконто(1).ОсновнойСчет.Номер);     
        НоваяСтрока                    = ТаблицаЗначенийОперанда.Добавить();
        НоваяСтрока.КодОперанда         = "РБ77_С__ОК_СД_62_1_90_1_1";
        ИНН =  ИТ.Субконто(1).ИНН;
        РазделительИНН = Найти(ИНН, "/");
        Если РазделительИНН>0 Тогда
            ИНН = Лев(ИНН, РазделительИНН-1);
        КОнецЕсли;
        НоваяСтрока.Аналитика1             = Справочники.Организации.НайтиПоРеквизиту("ИНН",ИНН); // Вид субконто: Свои контрагенты
        ////НоваяСтрока.Аналитика2             = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Лифт1"); // Вид субконто: Номенклатурные группы
        НоваяСтрока.Значение             = Ит.ДО(); // Числовое значение в формате 18.5
        НоваяСтрока.ИтогПоПоказателю     = ЛОЖЬ;
        
    КонецЦикла;
Иначе
    Сообщить("Не удалось выполнить бух. запрос. Обработка не выполнена!",СтатусСообщения.ОченьВажное);
КонецЕсли;
9 PalexRF
 
04.08.14
19:41
рабочий пример в (8)