Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Сравнение с УИД

Сравнение с УИД
Я
   seraf
 
03.02.20 - 17:11
Привет, как сделать чтобы эта конструкция заработала

Несовместимые типы "ВЫРАЗИТЬ"
ПО t1.Заказ = <<?>>ВЫРАЗИТЬ(t2.УИДУслуги

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

В таблице значений заказ - строка УИД
 
 
   ДенисЧ
 
1 - 03.02.20 - 17:20
не прокатит
   acht
 
2 - 03.02.20 - 17:21
(0) Использовать в таблице уникальный идентификатор для заказа
   hhhh
 
3 - 03.02.20 - 17:22
(0) в ТаблицаОстатковРасчетов сравнить. А потом уже запрос
   seraf
 
4 - 03.02.20 - 17:24
А как тогда в таблице значений колонку строковую Заказ преобразовать в УИД временно одним махом?
   seraf
 
5 - 03.02.20 - 17:28
Добавить колонку и перебить строки в 
Новый УникальныйИдентификатор(Заказ) ? А потом с ней сравнить что ли
   1Сергей
 
6 - 03.02.20 - 17:31
(5) именно
   seraf
 
7 - 03.02.20 - 17:54
После добавление УИД во внешнюю ТЗ, такое

{(4, 2)}: Тип не может быть выбран в запросе
<<?>>&ВнешняяТаблицаОстатковРасчетов КАК ВнешняяТаблицаОстатковРасчетов

ТЗ = ТаблицаОстатковРасчетов.Выгрузить();
        ТЗ.Колонки.Добавить("УИД");
        Для Каждого Строка ИЗ ТЗ Цикл
            Строка.УИД = Новый УникальныйИдентификатор(Строка.Заказ);
        КонецЦикла;
        Запрос.УстановитьПараметр("ВнешняяТаблицаОстатковРасчетов", ТЗ);
        РезультатЗапроса = Запрос.Выполнить();
   1Сергей
 
8 - 03.02.20 - 18:03
(7) гугли как передать ТЗ в запрос
   seraf
 
9 - 03.02.20 - 18:05
ТЗ.Колонки.Добавить("УИД", Новый ОписаниеТипов("УникальныйИдентификатор")) что-то не помогло
   seraf
 
10 - 03.02.20 - 18:05
а что там загуглить, ну передана как параметр, что не так
   GANR
 
11 - 03.02.20 - 18:09
(0) А нельзя ли заменить этот УИД услуги на ссылку на документ в регистре!? А потом пользоваться им в своё удовольствие. Это же капец - писать кучу овнокода, по преобразованию ссылки в УИД и обратно всюду, где ни лень.
   1Сергей
 
12 - 03.02.20 - 18:10
(10) хитрость там. Надо перво-наперво из такой таблицы обязательно сделать внутреннюю таблицу


ВЫБРАТЬ
    ...
ПОМЕСТИТЬ ВТ
ИЗ
    &ТЗ КАК ТЗ
;
   1Сергей
 
13 - 03.02.20 - 18:11
(12) *временную таблицу
   GANR
 
14 - 03.02.20 - 18:13
Почему во всей это ветке никто не задумался о том, как перепроектировать структуру данных, чтобы впредь стало проще работать?
   unbred
 
15 - 03.02.20 - 18:15
(14)                               ВЫРАЗИТЬ("""" КАК СТРОКА(36)) КАК УИД
     стр.УИД = строка(стр.ссылка.УникальныйИдентификатор());
   ссылка = Справочники.Справочник.ПолучитьСсылку(Новый УникальныйИдентификатор(Стр.УИД));
   1Сергей
 
16 - 03.02.20 - 18:32
(14) Кто мы такие чтобы запрещать человеку стрелять себе в ногу? :)
   seraf
 
17 - 03.02.20 - 19:26
(12) так я в (1) помещаю в ВТ, это ошибка с ней прилетает.
   hhhh
 
18 - 03.02.20 - 19:55
(17) внешнюю таблицу можно засовывать во внутренний запрос. Только если в нем примитивные типы: строки, числа, даты.
   seraf
 
19 - 03.02.20 - 20:08
Как посоветуете решить тогда?
   hhhh
 
20 - 03.02.20 - 20:34
(19) не передавать из внешней базы ссылка и уиды. А передавать только строки, числа, даты.
   victuan1
 
21 - 04.02.20 - 05:32
(20) Так УУИД это и есть строка)
   ДенисЧ
 
22 - 04.02.20 - 05:37
(21) УИД это число )))
   unbred
 
23 - 04.02.20 - 18:46
(22) уид это уид
   unbred
 
24 - 04.02.20 - 18:47
(19) я тебе всё написал в (15) , код за тебя написать?
   VS-1976
 
25 - 04.02.20 - 19:01
(15) Вместо строка(стр.ссылка.УникальныйИдентификатор());
XMLСтрока( стр.ссылка )
   victuan1
 
26 - 05.02.20 - 05:59
(23) в (15) видно, что все-таки строка:
стр.УИД = строка(стр.ссылка.УникальныйИдентификатор())


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.