Имя: Пароль:
1C
 
Запрос через прямое подключение к базе
,
0 Масянька
 
03.05.24
14:21
День добрый!
В ЗУП загрузить данные из УПП.
Прямое подключение (COM).
Ругается на перечисление:
	МассивОпераций = Новый Массив;
	
	МассивОпераций.Добавить(БазаУПП.Перечисления.ВидыОперацийСДивидендами.ВыплатаПочтой);
	МассивОпераций.Добавить(БазаУПП.Перечисления.ВидыОперацийСДивидендами.ВыплатаЧерезБанк);
	МассивОпераций.Добавить(БазаУПП.Перечисления.ВидыОперацийСДивидендами.ВыплатаЧерезСберБанк);
	МассивОпераций.Добавить(БазаУПП.Перечисления.ВидыОперацийСДивидендами.ВыплатаЧерезЗапрплату);
	МассивОпераций.Добавить(БазаУПП.Перечисления.ВидыОперацийСДивидендами.Возврат);

	ЗапросУПП = БазаУПП.NewObject("Запрос");  
	
	ЗапросУПП.Текст = "ВЫБРАТЬ
	|	РегистрацияОперацийСДивидендами.Ссылка,
	|	РегистрацияОперацийСДивидендами.Ссылка.Представление КАК ПредставлениеДок,
	|	РегистрацияОперацийСДивидендами.Номер КАК Номер,
	|	РегистрацияОперацийСДивидендами.Дата КАК Дата,
	|	РегистрацияОперацийСДивидендами.ВидОперации.Ссылка КАК ВидОперации,
	|	РегистрацияОперацийСДивидендами.Протокол КАК Протокол,
	|	РегистрацияОперацийСДивидендами.Ответственный КАК Ответственный
	|ИЗ
	|	Документ.РегистрацияОперацийСДивидендами КАК РегистрацияОперацийСДивидендами
	|ГДЕ
	|	РегистрацияОперацийСДивидендами.Дата МЕЖДУ &ДатаНач И &ДатаКон
	|	И РегистрацияОперацийСДивидендами.ВидОперации.Ссылка В (&ВидОперации)
	|	И РегистрацияОперацийСДивидендами.Проведен = ИСТИНА
	|	И РегистрацияОперацийСДивидендами.ПометкаУдаления = ЛОЖЬ
	|
	|УПОРЯДОЧИТЬ ПО
	|	Дата";
	
	ЗапросУПП.УстановитьПараметр("ДатаНач", 	ДатаНач); 	
	ЗапросУПП.УстановитьПараметр("ДатаКон", 	ДатаКон); 	
	ЗапросУПП.УстановитьПараметр("ВидОперации", МассивОпераций);

Без "Ссылка" - тоже ругается.
Что не так?
Спасибо.
1 arsik
 
гуру
03.05.24
14:19
Массив то у тебя текущей базы. Попробуй вариант через ИЛИ. Тем более в запросе можно значения перечислений сразу указать.
2 Мультук
 
гуру
03.05.24
14:21
(0)

МассивОпераций = БазаУПП.NewObject("массив");
3 Garykom
 
гуру
03.05.24
14:22
(0) Перепиши код из лапши на ящик
Так что на входе параметры - на выходе результат
И сразу все будет понятно

Ну и
(1)+ https://forum.infostart.ru/forum9/topic124275/
4 RomanYS
 
03.05.24
14:22
(1) +1
(0) попробуй так:

   МассивОпераций = БазаУПП.NewObject("Массив");
5 Масянька
 
03.05.24
14:23
(1) Отладчик показывает - COMОбъект.
6 Garykom
 
гуру
03.05.24
14:23
(3)+ Если переписать - будет потом легче этот изврат с com-соединения на http-сервис перевести
7 Масянька
 
03.05.24
14:24
(2) (4) СПАСИБО!!!!!!!!!!!!!!!
8 Garykom
 
гуру
03.05.24
14:30
(2) (4) Вот интересно почему
БазаУПП.NewObject
а не
БазаУПП.НовыйОбъект
?
9 arsik
 
гуру
03.05.24
14:31
А вот это какой то треш
РегистрацияОперацийСДивидендами.ВидОперации.Ссылка
10 Garykom
 
гуру
03.05.24
14:32
(8)+ В смысле я понимаю что NewObject это наследие COM/OLE
Но ведь не сложно в платформе сделать глобальную функцию НовыйОбъект(), доступную в т.ч. через внешнее соединение и выполняющее тоже?
11 Garykom
 
гуру
03.05.24
14:34
(9) РегистрацияОперацийСДивидендами.Ссылка.Представление
тебя не смущает?
12 Масянька
 
03.05.24
14:34
А как достучаться до значения перечисления? В запросе.
    |    РегистрацияОперацийСДивидендами.ВидОперации КАК ВидОперации,
13 Garykom
 
гуру
03.05.24
14:36
14 arsik
 
гуру
03.05.24
14:36
(11) Да там вообще полный треш.
15 Масянька
 
03.05.24
14:40
+(12)  Только через ВЫБОР и преобразование к строке?
16 Мультук
 
гуру
03.05.24
14:40
(9)(11)

Все-равно будет вторая серия, ибо "В ЗУП загрузить данные из УПП"

И даже не знаю какое из слов "ЗУП, загрузить, COM, сопоставление" здесь страшнее.


P.S.
Масянька, может, не надо ?
Может после майских само рассосется?
Может бухи руками внесут ?
17 Масянька
 
03.05.24
14:43
(16) Мне вот интересно, обо...ть - это для "гениев" в порядке вещей? Или у вас (под "вами" я имею ввиду небольшую часть мужского населения) комплексы?
Если человек мужского рода спрашивает, несмотря на уровень вопроса, нормально отвечаете. А тут прямо "конкурс альфа-самцов"...
18 Garykom
 
гуру
03.05.24
14:46
(17) у тебя уровень вопросов плохо коррелирует с длиной полоски и банальными ответами в гугле
19 Масянька
 
03.05.24
14:47
(18) То, что гугл выдает на получение значения перечисления - нельзя назвать ответами.
Хотя, тебе виднее...
20 Garykom
 
гуру
03.05.24
14:47
(16) синхронизация-сопоставление тут страшнее всего
особенно когда не один к одному
21 Garykom
 
гуру
03.05.24
14:48
(19) странно у меня гугл сразу выдает ЗНАЧЕНИЕ(Перечисление.ПолФизическихЛиц.Мужской)
22 arsik
 
гуру
03.05.24
14:50
(17) Это детские ошибки пользователя у которого стаж: 16 лет 10 мес. И пол тут не при чем.
23 Garykom
 
гуру
03.05.24
14:52
(15) ВЫБОР нужен для составных реквизитов в запросах, вместе с ВЫРАЗИТЬ
24 Масянька
 
03.05.24
14:53
(22) (23) Запрос выше - как получить значение перечисления (ВидОперации - это перечисление)?
25 Масянька
 
03.05.24
14:53
+ (24) Мне подойдет строка.
26 Garykom
 
гуру
03.05.24
14:57
(24) Сколько платишь?
27 Мультук
 
гуру
03.05.24
14:57
(25)

ПРЕДСТАВЛЕНИЕ(РегистрацияОперацийСДивидендами.ВидОперации) КАК ВидОперации,

Так пойдет ?
28 Масянька
 
03.05.24
14:59
(27) СПАСИБО!
29 Масянька
 
03.05.24
15:00
(26) Тебе - нисколько.
30 Garykom
 
гуру
03.05.24
15:05
(27) Смысл от такого?
Когда по идее надо как в (1) написано через ИЛИ
РегистрацияОперацийСДивидендами.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСДивидендами.ВыплатаПочтой) ИЛИ
РегистрацияОперацийСДивидендами.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСДивидендами.ВыплатаЧерезБанк) ИЛИ ...
31 arsik
 
гуру
03.05.24
15:08
(30) А еще лучше как то так
ВЫБРАТЬ
	Номенклатура.Ссылка КАК Ссылка
ИЗ
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	Номенклатура.ВидНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Услуга))
32 Garykom
 
гуру
03.05.24
15:13
(31) Чисто визуально лучше, на уровне субд тоже самое
И сложней допиливать такой запрос, комменты как было и новые строки добавлять
33 SleepyHead
 
гуру
03.05.24
15:16
(0)

И РегистрацияОперацийСДивидендами.ВидОперации.Ссылка В (Значение(Перечисление.ВидыОперацийСДивидендами.ВыплатаПочтой), Значение(Перечисление.ВидыОперацийСДивидендами.ВыплатаЧерезБанк))


Прямо в запросе указывай все значения, которые тебе нужны
34 Мультук
 
гуру
03.05.24
15:19
(32) (31)

Боюсь, что её интересует значение выборки из УПП в ЗУП
|    РегистрацияОперацийСДивидендами.ВидОперации КАК ВидОперации,

после выполнения запроса и это значение нужно как-то с чем-то сравнивать ?

Если выборка.ВидОперации = БазаУПП.Перечисления.ВидыОперацийСДивидендами.ВыплатаПочтой Тогда
    {делаем что-то }
ИначеЕсли выборка.ВидОперации =    БазаУПП.Перечисления.ВидыОперацийСДивидендами.ВыплатаЧерезБанк Тогда
    {делаем что-то другое}
КонецЕсли;
35 Garykom
 
гуру
03.05.24
15:22
(34) ага (20)
в этом случае ВЫБОР КОГДА ТОГДА и прямо в запросе прописываем строковые значения для сопоставления
типа все Выплата.. - это одно, Возврат другое
36 Garykom
 
гуру
03.05.24
15:24
(35)+ можно даже значения в запрос через параметры передать, которые подставятся и по которым потом удобно сравнивать
37 arsik
 
гуру
03.05.24
15:24
Из запроса как то можно получить имя значения перечисления, а не представление?
38 Garykom
 
гуру
03.05.24
15:29
(37) см (36) передать ТЗ и сопоставить
39 Масянька
 
03.05.24
15:36
(35) А как же (23)?
40 Масянька
 
03.05.24
15:37
Если что - у меня таблица заполняется, как надо.
41 Garykom
 
гуру
03.05.24
15:39
(39) так это тоже самое почти
рассматривай свои значения перечисления как составной реквизит из разных значений, которые приводить надо

уверен еще наткнешься в запросах на составные реквизиты
42 Масянька
 
03.05.24
16:01
(41) В тему:
Идет заседание в рейстаге, присутствуют Гитлер, Гимлер, Мюллер. Заходит Штирлиц, ставит на стол поднос с апельсинами, берет из сейфа документы и уходит.
Гитлер в гневе: — Это кто?
Гимлер и Мюллер в один голос: — Это русский разведчик Исаев.
Гитлер: — Так, арестуйте его!
— Бесполезно. Скажет, что апельсины приносил...
43 Волшебник
 
03.05.24
16:05
(42) Совершенно не в тему, но это ж Масянька...
44 MaximSh
 
06.05.24
14:02
(0) нет ли здесь орфографической ошибки ВыплатаЧерезЗапрплату?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.