Имя: Пароль:
1C
1С v8
Ошибка в Запросе. Которого нет...
,
0 minsk1s
 
09.06.15
15:09
1С:Предприятие 8.3 (8.3.4.465)
Конфа на УФ. Реализую кнопку ПОДБОР с текущими остатками.

1) В документе Заявка сделал кнопку - Подбор.
2) Создал обработку ПодборЗЧ
3) Есть только один запрос, созданный конструктором в таблицеМатериалов (ДинамическийСписок) в объекте "настройка списком".

Сам запрос:

ВЫБРАТЬ
    МатериалыЗапЧасти.Ссылка КАК Материал,
    ЕСТЬNULL(СкладОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток
ИЗ
    РегистрНакопления.Склад.Остатки КАК СкладОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МатериалыЗапЧасти КАК МатериалыЗапЧасти
        ПО (СкладОстатки.КоличествоОстаток > 0)
            И СкладОстатки.МатериалЗЧ = МатериалыЗапЧасти.Ссылка
ГДЕ
    НЕ МатериалыЗапЧасти.ЭтоГруппа

Запрос срабатывает при открытии обработки. А вот при закрытии обработки вываливается ошибка:

Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"

В строке:
Таблица = Объект.ПодобранныеМаетриалы.Выгрузить();
    
    АдресПодобранныхМатериаловВХранилище = ПоместитьВоВременноеХранилище(ТаблицаМатериалов, УникальныйИдентификатор);//


Куда уже копать - ума не приложу...
1 разработчик 1с
 
09.06.15
15:11
код закрытия
2 Timon1405
 
09.06.15
15:12
а точно подобранныемаЕТриалы?
3 minsk1s
 
09.06.15
15:12
(2) эт я тут ошибся. в модуле всё ок.
4 minsk1s
 
09.06.15
15:13
(1)
&НаСервере
Функция ПриЗакрытииНаСервере()
    
    СтруктураВозврата = Новый Структура();
    
    Если ПеренестиВДокумент Тогда
        АдресПодобранныхМатериаловВХранилище = ПоместитьПодобранныеМатериалыВХранилище();
    
        СтруктураВозврата.Вставить("АдресПодобранныхМатериаловВХранилище", АдресПодобранныхМатериаловВХранилище);
    КонецЕсли;
    
    Возврат СтруктураВозврата;
    
КонецФункции

&НаКлиенте
Процедура ПриЗакрытии()
    
    СтруктураВозврата = ПриЗакрытииНаСервере();
    
    Если ПеренестиВДокумент Тогда
        ОповеститьОВыборе(СтруктураВозврата);
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    
    Если Не ПеренестиВДокумент И Объект.ПодобранныеМатериалы.Количество() > 0 Тогда
        
        ОтветНаВопрос = Вопрос(НСтр("ru = 'Подобранные материалы не перенесены в документ.
        |
        |Перенести?'"), РежимДиалогаВопрос.ДаНетОтмена);
        
        Если ОтветНаВопрос = КодВозвратаДиалога.Отмена Тогда
            Отказ = Истина;
        ИначеЕсли ОтветНаВопрос = КодВозвратаДиалога.Да Тогда
            ПеренестиВДокумент = Истина;
        КонецЕсли;
        
    КонецЕсли;
    
КонецПроцедуры
5 разработчик 1с
 
09.06.15
15:15
(4) ПоместитьПодобранныеМатериалыВХранилище() показывай
6 minsk1s
 
09.06.15
15:18
(5) &НаСервере
Функция ПоместитьПодобранныеМатериалыВХранилище()
    
    ТаблицаМатериалов = Объект.ПодобранныеМатериалы.Выгрузить();
    
    АдресПодобранныхМатериаловВХранилище = ПоместитьВоВременноеХранилище(ТаблицаМатериалов, УникальныйИдентификатор);//
    
    
    Возврат АдресПодобранныхМатериаловВХранилище;
    
КонецФункции
7 minsk1s
 
09.06.15
15:22
ПодобранныеМатериалы – это ДинамическийСписок - в объекте "настройка списком" конструктором создан запрос… вышеприведённый…
8 minsk1s
 
09.06.15
15:25
вот и я о том же... Ошибка в Запросе. Которого нет...)))
9 Windyhead
 
09.06.15
15:35
(7) Объект.ПодобранныеМатериалы.Выгрузить();
  Выгружаешь динамический список?
Где результат подбора?
Если "результат подбора" это и есть динамический список то зачем тогда подбор? можно сразу заполнять запросом данные.
10 minsk1s
 
09.06.15
15:41
(9) простите туплю уже.

ПодобранныеМатериалы – это табличная часть обработки...
11 SUA
 
09.06.15
15:45
(4)&НаСервере
+ Code
        
        ОтветНаВопрос = Вопрос(
уже хорошо...
12 разработчик 1с
 
09.06.15
16:07
(10) может просто тз использовать
13 samozvanec
 
09.06.15
16:18
(0) почему просто с регистра не возьмешь?
14 minsk1s
 
09.06.15
16:20
(13) нулевые значения тоже нужны..
15 DirecTwiX
 
09.06.15
16:22
(11) Там клиент. Разверни Code :)
16 DirecTwiX
 
09.06.15
16:23
ЗамерПроизводительности попробуй запустить
17 minsk1s
 
09.06.15
16:29
(16) ошибка при вызове метода контекста ПоместитьВоВременноеХранилище
18 minsk1s
 
09.06.15
16:30
на 26 строке ругается ...

25...ТаблицаМатериалов = Объект.ПодобранныеМатериалы.Выгрузить();
    
26...АдресПодобранныхМатериаловВХранилище = ПоместитьВоВременноеХранилище(ТаблицаМатериалов, УникальныйИдентификатор);//
19 minsk1s
 
09.06.15
16:31
Сам думал что из-за ДинамическогоСписка. Но в типовой такая же приблуда срабатывает...
20 minsk1s
 
09.06.15
16:39
я редкий идиот)))
21 samozvanec
 
09.06.15
16:39
(14) ну во-первых, там левое К регистру, во-вторых

ПО (СкладОстатки.КоличествоОстаток > 0)
            И СкладОстатки.МатериалЗЧ = МатериалыЗапЧасти.Ссылка

я бы еще понял, если он так разложил неявное соединение, чтобы указать

ГДЕ
    НЕ МатериалыЗапЧасти.ЭтоГруппа

но таки какие группы в остатках?
22 minsk1s
 
09.06.15
16:40
исправил:
ТаблицаМатериалов = Объект.ПодобранныеМатериалы.Выгрузить();
АдресПодобранныхМатериаловВХранилище = ПоместитьВоВременноеХранилище(ТаблицаМатериалов, УникальныйИдентификатор);//

на

ТаблицаМатериалов2 = Объект.ПодобранныеМатериалы.Выгрузить();
АдресПодобранныхМатериаловВХранилище = ПоместитьВоВременноеХранилище(ТаблицаМатериалов2, УникальныйИдентификатор);//
23 samozvanec
 
09.06.15
16:40
+(21) ты* так разложил
24 minsk1s
 
09.06.15
16:40
ТаблицаМатериалов - РЕАЛЬНАЯ ТАБЛИЦА
ТаблицаМатериалов2 - ПЕРЕМЕННАЯ
25 minsk1s
 
09.06.15
16:41
(24) да фиг с ним))
26 minsk1s
 
09.06.15
16:41
всем спасибо)
27 samozvanec
 
09.06.15
16:42
+(21) и вообще боря нуралиев против соединений с виртуальными таблицами, а он фигни не посоветует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший