|
|
|
Консолидация запрос к РБ 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)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |