Имя: Пароль:
1C
1С v8
COM соединение к базе бух
,
0 ColonelAp4u
 
26.04.16
09:32
Добрый день подскажите пожалуйста как быть. Мне необходимо перегрузить платежки из базы бух в рабочую базу. Подключаюсь по кому все хорошо платежки отбираю по периоду. Но есть косяк, необходимо выбрать только те документы у которых Вид операции(перечисление.Видыоперации.ОплатаПокупателя). Получить из базы это значение могу но в самом документе это ком объект и у него нету никаких признаков по которым его можно было бы найти что бы сравнить с найденным видом в самой базе и перегружать только те документы которые соответствуют условиям
1 ColonelAp4u
 
26.04.16
09:33
может я не прав и есть возможность получить данные из ком объекта
2 ColonelAp4u
 
26.04.16
09:37
признакРТОЛЕ = БазаОЛЕ.Метаданные().Перечисления.ВидыОперацийПКО.EnumValues.Get(0).Name;
Вот так я получил значение перемечисления
3 ColonelAp4u
 
26.04.16
09:37
перечисления*
4 Pro-tone
 
26.04.16
09:40
(0) в чем проблема выбрать запросом?
5 ColonelAp4u
 
26.04.16
09:41
Где выбрать запросом
6 ColonelAp4u
 
26.04.16
09:41
выборкаОЛЕ = БазаОЛЕ.документы.ПриходныйКассовыйОрдер.выбрать(НачПериода,КонПериода);
7 Pro-tone
 
модератор
26.04.16
09:41
(5) в базе бух
8 DrZombi
 
гуру
26.04.16
09:41
(2) У перечисления есть индекс, порядковый номер, если так понятней. И оно там не меняется :)
9 ColonelAp4u
 
26.04.16
09:41
это выборка документов по периоду, после периода можно поставить отбор.
10 Pro-tone
 
модератор
26.04.16
09:42
(6) ты знаком с запросами?
11 DrZombi
 
гуру
26.04.16
09:42
(9) Ты нас учишь или спрашиваешь? :)
12 Pro-tone
 
модератор
26.04.16
09:45
(9) уважаемый, если не будет ответа на (10) я закрою эту ветку, а откроешь заново такую же заблокирую уже тебя самого
13 ColonelAp4u
 
26.04.16
09:46
(10) знаком буду пробовать
14 ColonelAp4u
 
26.04.16
09:46
если что напишу просто после вашего ответа начал пробовать делать запрос и по этому тут тишина была
15 Pro-tone
 
26.04.16
09:48
(13) верный ответ я дал в (4), строишь запрос в базе бух со всеми отборами и получаешь нужные объекты
16 ColonelAp4u
 
26.04.16
09:52
(15) понял спасибо пробую
17 ColonelAp4u
 
26.04.16
09:56
Запрос = БазаОЛЕ.newObject("Запрос");
        Запрос.Текст = "ВЫБРАТЬ
        |    ПриходныйКассовыйОрдер.Ссылка,
        |    ПриходныйКассовыйОрдер.ВидОперации
        |ИЗ
        |    Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
        |ГДЕ
        |    ПриходныйКассовыйОрдер.ВидОперации = &ВидОперации";
        Запрос.установитьПараметр("ВидОперации",признакРТОЛЕ);
        Результат = Запрос.Выполнить().Выбрать();
        Результат.Следующий();
18 ColonelAp4u
 
26.04.16
09:57
Подскажите правильно ли я указал параметр?
или нужно его по другому указать?
19 ColonelAp4u
 
26.04.16
09:58
признакРТОЛЕ = БазаОЛЕ.Метаданные().Перечисления.ВидыОперацийПКО.EnumValues.Get(0).Name; Здесь получаю значение "ОплатаПокупателя"
20 elCust
 
26.04.16
09:59
Пиши запрос. В запросе используй оператор ЗНАЧЕНИЕ()
21 hhhh
 
26.04.16
10:07
(19) неправильно. "ОплатаПокупателя" - это ведь строка. А ПриходныйКассовыйОрдер.ВидОперации - это по-любому не строка. У вас пусто будет. НИчего не выберется.
22 hhhh
 
26.04.16
10:08
(19) да, вот так

       |ГДЕ
        |    ПриходныйКассовыйОрдер.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПКО.ОплатаПокупателя)
23 ColonelAp4u
 
26.04.16
10:11
(22) Выдает ошибку
{Форма.Форма.Форма(25)}: Ошибка при вызове метода контекста (Выполнить)
        Результат = Запрос.Выполнить().Выбрать();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.6.2421): {(7, 48)}: Неверные параметры "Перечисления.ВидыОперацийПКО.ОплатаПокупателя"
ПриходныйКассовыйОрдер.ВидОперации = Значение(<<?>>Перечисления.ВидыОперацийПКО.ОплатаПокупателя)
24 ColonelAp4u
 
26.04.16
10:12
Я честно извиняюсь но с ком объектами начал работать вчера. Многого не знаю так что сильно не судите пож.
25 Gangar
 
26.04.16
10:18
а с запросами раньше чем вчера?
26 Gangar
 
26.04.16
10:19
(23) (24) Тебе ж в (22) написали - ..перечислениЕ
27 ColonelAp4u
 
26.04.16
10:19
(25) давно просто изучал все без книжек и некоторых нюансов могу не знать
28 ColonelAp4u
 
26.04.16
10:22
(26) увидел спс запрос выбрал и все равно вид операции ком объект без каких либо данных
29 ColonelAp4u
 
26.04.16
10:25
кажется разобрался всем спасибо тему пока не закрывайте
30 Pro-tone
 
26.04.16
10:33
(28) все верно, все объекты внешней базы это СОМ-объекты
31 ColonelAp4u
 
26.04.16
10:35
всем спасибо запрос отработал как нужно спасибо большое
32 ColonelAp4u
 
26.04.16
10:35
можно клоуз
33 cw014
 
26.04.16
10:36
признакРТОЛЕ = БазаОЛЕ.Метаданные().Перечисления.ВидыОперацийПКО.ОплатаПокупателя;
34 ColonelAp4u
 
26.04.16
10:42
(33) это к чему написано?