Имя: Пароль:
1C
 
запрос к таблице значений
0 ivanius
 
naïve
26.06.25
11:17
Есть таблица значений на форме она заполняется кодом данные на ней отображаются  хочу сделать к ней запрос чтоб потом поместить в json подскажите что не так ?
&НаСервере
функция Показать_РаскройНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
        |    ТЗВыходныеДанные.ТЗВыходныеДанныеНаименование КАК ТЗВыходныеДанныеНаименование,
        |    ТЗВыходныеДанные.ТЗВыходныеДанныех КАК ТЗВыходныеДанныех
        |    ТЗВыходныеДанные.ТЗВыходныеДанныеШирина КАК ТЗВыходныеДанныеШирина        
        |    ТЗВыходныеДанные.ТЗВыходныеДанныеу КАК ТЗВыходныеДанныеу
        |    ТЗВыходныеДанные.ТЗВыходныеДанныеВысотаКАК ТЗВыходныеДанныеВысота
        |ИЗ
        |    ТЗВыходныеДанные КАК пользователи";
    

    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Массив = Новый Массив;
    Пока Выборка.Следующий()Цикл
        Структура = Новый Структура("ТЗВыходныеДанныеНаименование, ТЗВыходныеДанныех,ТЗВыходныеДанныеШирина,ТЗВыходныеДанныеу,ТЗВыходныеДанныеВысотаКАК");
        ЗаполнитьЗначенияСвойств(Структура, Выборка);
        Массив.Добавить(Структура);
    КонецЦикла;
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, Массив);
    
    СтрокаJSON = ЗаписьJSON.Закрыть();
    Возврат СтрокаJSON;

    
  

Конецфункции
  
ОШИБКА
Ошибка при вызове метода контекста (Выполнить)
{ВнешняяОбработка.Новаядляраскроя.Форма.Форма.Форма(418)}:Результат = Запрос.Выполнить();
{ВнешняяОбработка.Новаядляраскроя.Форма.Форма.Форма(440)}:Показать_РаскройНаСервере();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
{(4, 2)}: Синтаксическая ошибка "ТЗВыходныеДанные.ТЗВыходныеДанныеШирина"
<<?>>ТЗВыходныеДанные.ТЗВыходныеДанныеШирина КАК ТЗВыходныеДанныеШирина
1 ivanius
 
naïve
26.06.25
11:17
Все названия один в один
2 Ненавижу 1С
 
гуру
26.06.25
11:18
зачем для того чтобы поместить в JSON делать запрос к таблице значений?
3 ivanius
 
naïve
26.06.25
11:19
(2) А как данные поместить в json из неё
4 formista2000
 
26.06.25
11:21
Это бот?
5 Мультук
 
гуру
26.06.25
11:23
(0)

1)
google:
1C как засунуть таблицуЗначений в запрос

2) Запрос (в данном примере) не нужен. Совсем
Массив= ОбщегоНазначения.ТаблицаЗначенийВМассив(ТЗВыходныеДанные);

ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Массив);
    
СтрокаJSON = ЗаписьJSON.Закрыть();
Возврат СтрокаJSON;


3)  
Вызов ОбщегоНазначения.ТаблицаЗначенийВМассив тоже не нужен.
Но так короче

4) Массив тоже не нужен, но...
6 Волшебник
 
26.06.25
11:25
(0) запятых не хватает

и от этого говна глаза режет
ТЗВыходныеДанныех
ТЗВыходныеДанныеу
ТЗВыходныеДанныеВысотаКАК

(4) Конечно
7 программистище
 
26.06.25
11:26
(4) ну либо падаваны совсем отупели
засунуть таблицу значений в запрос, чтобы потом получить эту же таблицу значений
8 Волшебник
 
26.06.25
11:34
(7) А как Вам это?

функция Показать_РаскройНаСервере()

ТЗВыходныеДанные КАК пользователи
9 vicof
 
26.06.25
11:38
(6) Не хватает ТЗВыходныеДанныей
10 Jackman
 
26.06.25
12:01
(0) Попробуйте так

Запрос.Текст =
    "ВЫБРАТЬ
|ТЗВыходныеДанные.ТЗВыходныеДанныеНаименование КАК ТЗВыходныеДанныеНаименование,
        |    ТЗВыходныеДанные.ТЗВыходныеДанныех КАК ТЗВыходныеДанныех,
        |    ТЗВыходныеДанные.ТЗВыходныеДанныеШирина КАК ТЗВыходныеДанныеШирина,        
        |    ТЗВыходныеДанные.ТЗВыходныеДанныеу КАК ТЗВыходныеДанныеу,
        |    ТЗВыходныеДанные.ТЗВыходныеДанныеВысота КАК ТЗВыходныеДанныеВысота
        |ИЗ
        |    ТЗВыходныеДанные КАК ТЗВыходныеДанные";
11 Волшебник
 
26.06.25
11:58
(10) не хватает запятых
12 Jackman
 
26.06.25
12:02
(11) Добавил, спасибо, не обратил внимание на их отсутствие
13 Jackman
 
26.06.25
12:04
(8) Тут какой-то расчлененкой попахивает :)
14 Дмитрий
 
26.06.25
13:13
Непонятно еще, как запрос увидит эту ТЗВыходныеДанные
15 Волшебник
 
26.06.25
13:13
(14) Непонятно, почему они "выходные", когда "входные"
16 Дмитрий
 
26.06.25
13:20
(15) Ну может Выходные - это воскресенье
17 Jackman
 
26.06.25
13:30
(14) Может это не весь запрос, а есть еще сверху, что-то типа:

"ВЫБРАТЬ
|ВнешняяТЗ.ТЗВыходныеДанныех,
|ВнешняяТЗ.ТЗВыходныеДанныеШирина,
|ВнешняяТЗ.ТЗВыходныеДанныеу,
|ВнешняяТЗ.ТЗВыходныеДанныеВысота
|ПОМЕСТИТЬ ТЗВыходныеДанные
|ИЗ
|&ВнешняяТЗ КАК ВнешняяТЗ
|;
....
|
|//Ниже идет запрос топикастера
18 Волшебник
 
26.06.25
13:35
(17) см (2)
19 Jackman
 
26.06.25
13:42
(18) Да, бредово, нужно работать непосредственно с таблицей значений.

Хотя, может автор привел упрощенный вариант запроса и там должны быть какие-то условия отбора перед отправкой ТЗ в json, типа, ТЗВыходныеДанныеШирина>100, тогда запрос оправдан.
20 craxx
 
26.06.25
17:35
(0) Автор, открой для себя работу с XDTO и не надо будет так изгаляться.
Хотя о чем это я?
21 Волшебник
 
26.06.25
19:05
(20) Ботам тоже надо где-то учиться. Миста предоставляет площадку для обучения ботов.
22 Маленький Вопросик
 
26.06.25
20:09
(17) +
23 Маленький Вопросик
 
26.06.25
20:19
(20) если ты будешь делать сериализацию, то ссылочные значения у тебя будут отображаться как гуид ссылки

так что это не совсем правильно
24 craxx
 
26.06.25
20:52
(23) Ну да, не совсем правильно, КД3 только об этом не знает, и сериализует через XDTO.
25 lEvGl
 
гуру
26.06.25
21:05
(5) 1. зачем совать тз куда-то, если она сама нормально сериализуется
2. зачем какой то массив, если тз сама нормально сериализуется
ну и так далее
вопрос - куда это будет грузиться. если в синхронизированную базу 1с, то ноу проблем, если внешнее что-то или базы несинхронные, то такой сериализации хоть тз хоть массива через запрос будет недостаточно
26 Мультук
 
гуру
26.06.25
22:03
(25)

Если автор решил совать - пусть сует.
В молодом возрасте это полезно. :-)

Чего он хочет (увы), я думаю, он и сам не знает.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший