Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 10:59
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: В условиях соединения запроса не допускается обращение к табличным частям.  (Прочитано 3926 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн keks_feo

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-29
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день!
Очередной геморрой вылез.
Сделал печатную форму, с правами администратора работает без проблем. С правами бухгалтера, ругается
Цитировать
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса: Запрос невозможно исполнить В условиях соединения запроса не допускается обращение к табличным частям. (1)


Читал на форумах, что возможно дело в запросах, когда использую "левое внешнее соединение таблиц". Уже в запросах, везде подправил на Внутреннее
подскажите, куда копать в чем траблы?!
Функция Печать() экспорт
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.УстановитьПараметр("ВидЗанятости", Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы);
Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);

ВалютаПечати = Константы.ВалютаРегламентированногоУчета.Получить();

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

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.УстановитьПараметр("Дата", ВыборкаОС.ДатаДок-1);
Запрос.УстановитьПараметр("ВидЗанятости", Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы);


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



Руководители = ОбщегоНазначения.ОтветственныеЛица(ВыборкаОС.Организация,ВыборкаОС.ДатаДок);


МОЛЗапрос=(ВыборкаГде.МОЛ);

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Дата", ВыборкаОС.ДатаДок-1);
Запрос.УстановитьПараметр("МОЛ", МОЛЗапрос);

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


ВыборкаДолжность = Запрос.Выполнить().Выбрать();
ВыборкаДолжность.Следующий();

МОЛЗапросПринял=(ВыборкаОс.МОЛ);


Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Дата", ВыборкаОС.ДатаДок-1);
Запрос.УстановитьПараметр("МОЛ", МОЛЗапросПринял);

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

ВыборкаДолжностьПринял = Запрос.Выполнить().Выбрать();
ВыборкаДолжностьПринял.Следующий();

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка",    СсылкаНаОбъект);
Запрос.УстановитьПараметр("Дата", ВыборкаОС.ДатаДок);
Запрос.УстановитьПараметр("счёт01_1", ПланыСчетов.Хозрасчетный.ОСвОрганизации);
Запрос.УстановитьПараметр("счёт02_1", ПланыСчетов.Хозрасчетный.АмортизацияОС_01);

Запрос.Текст = "ВЫБРАТЬ
| ПеремещениеОСОС.НомерСтроки КАК НС,
| ПеремещениеОСОС.ОсновноеСредство КАК ОсновноеСредство,
| ПеремещениеОСОС.ОсновноеСредство.Код КАК ИнвНомерУпр,
| ПеремещениеОСОС.ОсновноеСредство.НаименованиеПолное КАК НаименованиеОС,
| ПеремещениеОСОС.ОсновноеСредство.ДатаВыпуска КАК ГодВыпуска,
| ПеремещениеОСОС.НомерСтроки КАК   СуммаПеремещения
|ИЗ
| Документ.ПеремещениеОС.ОС КАК ПеремещениеОСОС
|ГДЕ
| ПеремещениеОСОС.Ссылка = &Ссылка";


ВыборкаПоОС = Запрос.Выполнить().Выбрать();

ДокВвода  = Неопределено;
ДатаВвода = Дата('00000000');

ТабДокумент   = Новый ТабличныйДокумент();
    Макет         = ПолучитьМакет("Макет");
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.АвтоМасштаб = Истина;

ОбластьШапка1 = Макет.ПолучитьОбласть("Шапка1");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапка1.Параметры.Заполнить(ВыборкаОС);
ОбластьШапка1.Параметры.ПодрСдатчик = ВыборкаГде.Сдатчик;
ТабДокумент.Вывести(ОбластьШапка1);

ИтогСумма = 0;
Пока ВыборкаПоОС.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(ВыборкаПоОС);

ВыборкаЗаписей = РегистрыСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.ПолучитьПоследнее(ВыборкаОС.ДатаДок,
Новый Структура("ОсновноеСредство",ВыборкаПоОС.ОсновноеСредство));
ИнвНомерБух    = ?(ВыборкаЗаписей.Количество() > 0,ВыборкаЗаписей.ИнвентарныйНомер,0);
ОбластьСтрока.Параметры.ИнвНомер = ИнвНомерБух;

Если ПустаяСтрока(ВыборкаПоОС.НаименованиеОС) Тогда
ОбластьСтрока.Параметры.НаименованиеОС = СокрЛП(ВыборкаПоОС.ОсновноеСредство.НаименованиеПолное);
КонецЕсли;

ТабДокумент.Вывести(ОбластьСтрока);
ИтогСумма = ИтогСумма + ?(ВыборкаПоОС.СуммаПеремещения<>Null,ВыборкаПоОС.СуммаПеремещения,0);
КонецЦикла;

ОбластьПодвал.Параметры.ИтогСумма = ИтогСумма;

Если СокрЛП(ВРег(ВыборкаДолжность.МОЛ)) = СокрЛП(ВРег(ВыборкаГде.МОЛ))  Тогда
Должность=ВыборкаДолжность.Должность;
Иначе
Должность = "";
                    ОбластьПодвал.Параметры.ДолжностьМОЛновое       = ВыборкаОС.Должность;
КонецЕсли;
Если СокрЛП(ВРег(ВыборкаДолжностьПринял.МОЛ)) = СокрЛП(ВРег(ВыборкаОС.МОЛ))  Тогда
ДолжностьПринял=ВыборкаДолжностьПринял.Должность;
Иначе
ДолжностьПринял = "";
                    ОбластьПодвал.Параметры.ДолжностьМОЛновое       = ВыборкаОС.Должность;
КонецЕсли;


ОбластьПодвал.Параметры.главБух = Руководители.ГлавныйБухгалтерПредставление;
    ОбластьПодвал.Параметры.МОЛновое = ВыборкаОС.МОЛ;
ОбластьПодвал.Параметры.МОЛстарое    = ВыборкаГде.МОЛ;
ОбластьПодвал.Параметры.ДолжностьМОЛстарое      = Должность;
ОбластьПодвал.Параметры.ДолжностьМОЛновое       = ДолжностьПринял;

ОбластьПодвал.Параметры.ТабельныйНомерМОЛстарое = ВыборкаДолжность.ТабельныйНомер;
ОбластьПодвал.Параметры.ТабельныйНомерМОЛновое  = ВыборкаДолжностьПринял.ТабельныйНомер;

ТабДокумент.Вывести(ОбластьПодвал);

ТабДокумент.ПолеСверху         = 0;
ТабДокумент.ПолеСлева          = 0;
ТабДокумент.ПолеСнизу          = 0;
ТабДокумент.ПолеСправа         = 0;

ТабДокумент.Показать();
Возврат Неопределено;




Оффлайн Rasty

  • *****
  • Сообщений: 988
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
В начале кода
УстановитьПривилегированныйРежим(Истина);
В конце кода
УстановитьПривилегированныйРежим(Ложь);
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн keks_feo

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-29
  • Сайт: 
  • Профессия: Ученик 1С
В начале кода
УстановитьПривилегированныйРежим(Истина);
В конце кода
УстановитьПривилегированныйРежим(Ложь);

вставил в коде, который описывал выше, не чего не изменилось... или это нужно в какую-то другую процедуру пихнуть?!

Оффлайн LexaK

  • *****
  • Сообщений: 1267
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
попробуйте такое запрос
Запрос.Текст = "ВЫБРАТЬ
                   |    ГдеБыло.Местонахождение КАК Сдатчик,
                   |    ГдеБыло.МОЛ КАК МОЛ
                   |ИЗ
                   |    Документ.ПеремещениеОС.ОС КАК ПеремещениеОС
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&Дата, ) КАК ГдеБыло
                   |        ПО ПеремещениеОС.ОсновноеСредство = ГдеБыло.ОсновноеСредство
                   |ГДЕ
                   |    ПеремещениеОС.Ссылка = &Ссылка" ;

табличная часть ОС перенесена из условия связи в источник данных.

п.с. а вообще у вас очень много запросов, которые возвращаю по капельке данных,
было бы правильнее, создать один запрос, который вернул бы все нужные для отчета данные!
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн keks_feo

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-29
  • Сайт: 
  • Профессия: Ученик 1С
попробуйте такое запрос
Запрос.Текст = "ВЫБРАТЬ
                   |    ГдеБыло.Местонахождение КАК Сдатчик,
                   |    ГдеБыло.МОЛ КАК МОЛ
                   |ИЗ
                   |    Документ.ПеремещениеОС.ОС КАК ПеремещениеОС
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&Дата, ) КАК ГдеБыло
                   |        ПО ПеремещениеОС.ОсновноеСредство = ГдеБыло.ОсновноеСредство
                   |ГДЕ
                   |    ПеремещениеОС.Ссылка = &Ссылка" ;

табличная часть ОС перенесена из условия связи в источник данных.

п.с. а вообще у вас очень много запросов, которые возвращаю по капельке данных,
было бы правильнее, создать один запрос, который вернул бы все нужные для отчета данные!

О.. оно, сработало! Спсб. учту на будущее.
а по поводу куча запросов, да я понимаю, что это не есть тактично, но это по сути мой первый отчет :)
учту!

Оффлайн LexaK

  • *****
  • Сообщений: 1267
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Цитировать
О.. оно, сработало! Спсб. учту на будущее.
Вот и отлично. :ooifh:
Кнопку - Спасибо нажимать не забываем. :btbzdb:
Помогло? - Нажми СПАСИБО!!!
                       :)


Теги:
 

Из запроса не выводятся значения полей - выводятся пустые значения

Автор Alex1111Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 24
Просмотров: 12184
Последний ответ 14 Июн 2012, 17:44
от Alex1111
"ПОДОБНО" в условие связи запроса

Автор Станиславъ ЗверевъРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 3228
Последний ответ 11 Май 2016, 15:29
от LexaK
"Таблица значений" в результате запроса - 1С

Автор mvk843Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 717
Последний ответ 15 Июн 2017, 07:53
от mvk843
Возможно ли языком запросов без конкатенации текста запроса и без СКД преобразовать строки таблицы в столбцы (колонки) выходной таблицы?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 437
Последний ответ 29 Май 2017, 15:29
от alex0402
Ошибка при выполнении запроса - "неоднозначное поле"

Автор Marta_LiРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 11910
Последний ответ 21 Апр 2011, 16:00
от Marta_Li

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal