Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Помогите пожалуйста разобраться в использовании бух.итогов посредством OLE-соединения. У меня есть две базы неидентичные. Из одной базы в другую подключаюсь и пытаюсь использовать бух.итоги. В базе, к которой подключаюсь, использую следующий код, который работает верно: ВСчет = ВыбСчет79; БИ=СоздатьОбъект("БухгалтерскиеИтоги"); БИ.ИспользоватьСубконто(ВидыСубконто.Подразделения,Подразделение); БИ.ВыполнитьЗапрос(НачДата,КонДата,ВыбСчет79,,,,"Проводка"); БИ.ВыбратьПериоды(); Пока БИ.ПолучитьПериод()=1 Цикл флД=0; флК=0; //ДебИт - дабы не зацензурено было Если (БИ.Операция.Дебит.Счет=Всчет) и (БИ.Операция.Кредит.Счет=Всчет) Тогда Если БИ.Операция.Дебит.Субконто(1)<>Подразделение Тогда флД=1; КонецЕсли; Если БИ.Операция.Кредит.Субконто(1)<>Подразделение Тогда флК=1; КонецЕсли; КонецЕсли; КонецЦикла; При подключении использую следующий код: БазаОле = СоздатьОбъект("V77.Application"); ....... ВыбСчет79 = БазаОле.CreateObject("Счет"); Если ВыбСчет79.НайтиПоКоду("79.2.1") = 1 Тогда ВСчет = ВыбСчет79.ТекущийСчет(); КонецЕсли; справПодр = БазаОле.CreateObject("Справочник.Подразделения"); справПодр.ВыбратьЭлементы(); Пока справПодр.ПолучитьЭлемент() = 1 Цикл Вхожд = найти(справПодр.Наименование, "МоеПодразделение"); Если Вхожд > 0 Тогда Подразделение = справПодр.ТекущийЭлемент(); Прервать; КонецЕсли; КонецЦикла; БИ = БазаОле.CreateObject("БухгалтерскиеИтоги"); ВидСубкПодрОле = БазаОле.ВидыСубконто.Подразделения; БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение); БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",); БИ.ВыбратьПериоды(0,0,0,0); Пока БИ.ПолучитьПериод()=1 Цикл флД=0; флК=0; Если (БИ.Операция.Дебит.Счет=Всчет) и (БИ.Операция.Кредит.Счет=Всчет) Тогда Если БИ.Операция.Дебит.Субконто(1)<>Подразделение Тогда флД=1; КонецЕсли; Если БИ.Операция.Кредит.Субконто(1)<>Подразделение Тогда флК=1; КонецЕсли; КонецЕсли; КонецЦикла; Дальше в код не вдаюсь. В базе, к которой подключаюсь, код отрабатывает по определенному подразделению. Во втором случае подразделение не проходит и перебирает все бух.итоги. Подскажите пожалуйста, где ошибка? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 21:01 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
А почему нельзя справПодр.НайтиПоНаименованию()? Вместо цикла. И глупый вопрос " МоеПодразделение" Может кавычки надо убрать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 21:10 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Программист 1сА почему нельзя справПодр.НайтиПоНаименованию()? Вместо цикла. И глупый вопрос " МоеПодразделение" Может кавычки надо убрать? справПодр.НайтиПоНаименованию() нельзя потому, что неизвестно конкретное наименование и ищем по части наименования. "МоеПодразделение" кавычки убрать нельзя, потому что это часть наименования, по которой мы ищем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 00:29 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
ВидСубкПодрОле - передаёте из другой базы? Скорее всего тут ошибка. Обращайтесь через метаданные родной конфигурации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 10:57 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
AHDPВидСубкПодрОле - передаёте из другой базы? Скорее всего тут ошибка. Обращайтесь через метаданные родной конфигурации. Для чего обращаться через метаданные родной базы, если ВидыСубконто необходимо использовать базы Оle? Запрос же идет в ole базу с ole данными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 11:44 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Родное для базы исполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 12:35 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Еще при подключении через ОЛЕ истина/ложь не всегда равны 0 и 1! Например здесь: Вхожд = найти(справПодр.Наименование, "МоеПодразделение"); Если Вхожд > 0 Тогда и т.д. Проверь через сообщить(Вхожд). Так же при соединении через ОЛЕ лучше указывать все параметры, здесь например: БИ = БазаОле.CreateObject("БухгалтерскиеИтоги"); ВидСубкПодрОле = БазаОле.ВидыСубконто.Подразделения; БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение); БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",); в последней строке правильно надо указать все параметры, так как значения по умолчанию могут неправильно передаваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:10 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
AHDPРодное для базы исполнения. Прошу прощения, не дошло сразу. Через метаданные родной базы устанавливаю ВидСубконто и использую его, но точно так же отрисовывает результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:17 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
KreontsaЕще при подключении через ОЛЕ истина/ложь не всегда равны 0 и 1! Например здесь: Вхожд = найти(справПодр.Наименование, "МоеПодразделение"); Если Вхожд > 0 Тогда и т.д. Проверь через сообщить(Вхожд). Вхожд отрабатывает верно, справПодр.Наименование находит "МоеПодразделение" и выводит сообщение, что объект найден. KreontsaТак же при соединении через ОЛЕ лучше указывать все параметры, здесь например: БИ = БазаОле.CreateObject("БухгалтерскиеИтоги"); ВидСубкПодрОле = БазаОле.ВидыСубконто.Подразделения; БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение); БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",); в последней строке правильно надо указать все параметры, так как значения по умолчанию могут неправильно передаваться. Все параметры передаю, которые по умолчанию должны ставиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:21 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
А "Подразделение" нету на форме например как реквизит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:37 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
SaikanoВсе параметры передаю, которые по умолчанию должны ставиться не все, важно как раз даже те что по умолчанию можно не задавать, их надо для ОЛЕ явно указывать,см.: ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>) а в коде: БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",); если все, тогда вроде что так для сумм будет: БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,"","",1,"Проводка",1); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:41 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
KreontsaА "Подразделение" нету на форме например как реквизит? нет, справочник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:49 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Kreontsaне все, важно как раз даже те что по умолчанию можно не задавать, их надо для ОЛЕ явно указывать,см.: ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>) а в коде: БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",); если все, тогда вроде что так для сумм будет: БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,"","",1,"Проводка",1); Имею в виду, что уже пробовалось ставить все параметры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:51 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
SaikanoKreontsaА "Подразделение" нету на форме например как реквизит? нет, справочник То есть все таки на форме есть реквизит с именем "Подразделение"? Если да, тогда в коде изменить Подразделение на ПодразделениеОЛЕ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:54 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
KreontsaТо есть все таки на форме есть реквизит с именем "Подразделение"? Если да, тогда в коде изменить Подразделение на ПодразделениеОЛЕ. нет, имею в виду (неточно написано), что на форме нет реквизитов вообще, только кнопка для соединения и подсчета =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 14:18 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Вот здесь еще нету всех реквизитов: БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение); => БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение,1,0); или БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение,2,0); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 14:43 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
KreontsaВот здесь еще нету всех реквизитов: БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение); => БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение,1,0); или БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение,2,0); да, здесь первый вариант использую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 14:45 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Так тогда если 1-й вариант, то надо еще ВыбратьСубконто + ПолучитьСубконто для выборки использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 14:54 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Kreontsa, уже все варианты пробую, что вижу и приходят на ум, голова перестала думать) и тот и другой варианты не проходят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 15:08 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Kreontsa, кстати, может быть у Вас есть icq или skype и чуть времени, чтобы общаться было проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 15:28 |
|
||
|
V7 Бух.итоги По Ole-соединению
|
|||
|---|---|---|---|
|
#18+
Такой код для теста проверил: БИ = БазаОле.CreateObject("БухгалтерскиеИтоги"); ВидСубкПодрОле = БазаОле.ВидыСубконто.Контрагенты; БИ.ИспользоватьСубконто(ВидСубкПодрОле, ТестКонтрагент,2,1); БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",); БИ.ВыбратьПериоды(0,0,0,0); Пока БИ.ПолучитьПериод()=1 Цикл Сообщить(БИ.Операция.Кредит.Счет);// пишет ОЛЕ, что и логично, если надо значение, // тогда так: БИ.Операция.Кредит.Счет.Код Сообщить(БИ.КО(1));// Выдает сумму И работает только по одному субконто, без перебора всех в цикле. Может аналогично все проверки переделай что б как строки сравнивать: Если (БИ.Операция.Дебит.Счет=Всчет) и (БИ.Операция.Кредит.Счет=Всчет) Тогда Заменить на Если (БИ.Операция.Дебит.Счет.код="79.2.1") и (БИ.Операция.Кредит.Счет.Код="79.2.1") Тогда скайп то я в профиль закинул, но у меня уже тоже варианты заканчиваются :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 17:30 |
|
||
|
|

start [/forum/topic.php?fid=28&gotonew=1&tid=1519990]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 282ms |
| total: | 547ms |

| 0 / 0 |
