Имя: Пароль:
1C
1С v8
Параметр в запросе
0 Pilot_Danik
 
22.09.22
16:01
Привет, привожу расширения в порядок для перехода на 11.5 и никак не могу решить одну проблему.
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ИнформацияОДоступности.Номенклатура Как Номенклатура,
    |    ИнформацияОДоступности.Характеристика КАК Характеристика,
    |    ИнформацияОДоступности.Склад КАК Склад,
    |    ИнформацияОДоступности.Свободно КАК Свободно,
    |    ИнформацияОДоступности.Резерв КАК Резерв,
    |   ИнформацияОДоступности.ВНаличии КАК ВНаличии,
    |    РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка КАК Ячейка
    |ИЗ
    |    РегистрСведений.РаспределениеЗапасов (, Номенклатура=&Номенклатура) КАК ИнформацияОДоступности
    |        ЛЕВОЕ СОЕДИНЕНИЕ
    |                РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
    |            ПО (ИнформацияОДоступности.Номенклатура=РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура
    |                     И ИнформацияОДоступности.Склад=РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад
    |                    И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ИСТИНА)


Вот такой код. И вот такая ошибка
по причине:
{(37, 2)}: Нельзя задавать параметры для таблицы "РегистрСведений.РаспределениеЗапасов"
<<?>>РегистрСведений.РаспределениеЗапасов(, Номенклатура=&Номенклатура) КАК ИнформацияОДоступности

Вопрос как задать параметр в этом запросе?
1 Жан Пердежон
 
22.09.22
16:04
Какие ещё параметры для основной таблицы регистра?
2 1Сергей
 
22.09.22
16:06
(0) Используй секцию ГДЕ
3 lubitelxml
 
22.09.22
16:07
+(2) или срез, если тебе именно он нужен
4 Мультук
 
гуру
22.09.22
16:25
(0)

1) Нужно посмотреть в отчёт ОстаткиИДоступностьТоваров (для 11.5) -- там всё русским по белому
2) В данном случае нужно не зевануть

    |ГДЕ
    |    РаспределениеЗапасов.Состояние = ЗНАЧЕНИЕ(Перечисление.РаспределениеЗапасовСостояния.ОстатокНаСкладе)

3) Если ты не можешь решить эту вовсе не проблему, то... удачи!


P.S.

УТ114                                                      УТ115
ПродажиСервер.ЗаполнитьЦены(                              ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
ДокОбъект.ЗаполнитьЭтапыГрафикаОплаты(0, Истина);      ВзаиморасчетыСервер.ПроверитьЗаполнитьЭтапыГрафикаОплаты(ДокОбъект)
Перечисления.ВариантыОбеспечения.Требуется              Перечисления.ВариантыОбеспечения.КОбеспечению
Перечисления.ВариантыОбеспечения.ИзЗаказов              Перечисления.ВариантыОбеспечения.РезервироватьПоМереПоступления
СписаниеЗадолженностиЛокализация.ПередЗаписью              КорректировкаЗадолженностиЛокализация.ПередЗаписью
РегистрСведений.УчетнаяПолитикаОрганизаций              РегистрСведений.НастройкиСистемыНалогообложения


Кроме регистра сведений КурсыВалют
1С добавили регистра сведений ОтносительныеКурсыВалют

Если в отчётах кто-то неполноправный видит нолики, нужно проверить "а есть ли у него права на новый регистр" ?
5 Pilot_Danik
 
22.09.22
16:34
(1)     Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("МассивВидовЦен", МассивВидовЦен);
6 Pilot_Danik
 
22.09.22
16:37
(4) Если я вставляю

ИЗ
        РегистрСведений.РаспределениеЗапасов (, Номенклатура = &Номенклатура) КАК ИнформацияОДоступности
      ГДЕ
        РегистрСведений.РаспределениеЗапасов.Состояние = ЗНАЧЕНИЕ(Перечисление.РаспределениеЗапасовСостояния.ОстатокНаСкладе)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам

То ругается на мамкиного программиста во так
Синтаксическая ошибка "ЛЕВОЕ"
<<?>>ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
7 Галахад
 
гуру
22.09.22
16:46
(6) Используй конструктор если не знаешь как правильно.

P.S. Секция ГДЕ ниже соединения.
8 bolobol
 
22.09.22
16:49
Какое-то реально "левое" соединение. Условие соединяется с таблицей.. что бы это значило вообще? Чисто логически?
9 bolobol
 
22.09.22
16:49
"Позовите программиста"?
10 lubitelxml
 
22.09.22
16:58
(6) ГДЕ нужно писать после Соединений
11 Pilot_Danik
 
22.09.22
17:18
Спасибо, все срослось. Только не понимаю почему в 11.4
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    СвободныеОстаткиОстатки.Характеристика КАК Характеристика,
    |    СвободныеОстаткиОстатки.Склад КАК Склад,
    |    СвободныеОстаткиОстатки.ВНаличииОстаток КАК Остаток,
    |    СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток КАК Резерв,
    |    СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток КАК Свободно,
    |    РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка КАК Ячейка
    |ИЗ
    |    РегистрНакопления.СвободныеОстатки.Остатки(, Номенклатура = &Номенклатура) КАК СвободныеОстаткиОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
    |        ПО (СвободныеОстаткиОстатки.Номенклатура = РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура
    |                И СвободныеОстаткиОстатки.Склад = РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад
    |                И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ИСТИНА)

Это работало, а в 11.5, по аналогии нет
12 lubitelxml
 
22.09.22
17:20
(11) потому что с определенной версии 11.5 - 1с переделала регистры хранения остатков
13 Мультук
 
гуру
22.09.22
17:20
(11)

Потому что 1С удалила РегистрНакопления.СвободныеОстатки из УТ 11.5
14 Pilot_Danik
 
22.09.22
17:44
)) Это я увидел вопрос в параметре
РегистрНакопления.СвободныеОстатки.Остатки(, Номенклатура = &Номенклатура) в 11.4 так работает
РегистрСведений.РаспределениеЗапасов (, Номенклатура=&Номенклатура) в 11.5 нет
15 bolobol
 
22.09.22
17:57
Найди 8 отличий, называется...
16 Галахад
 
гуру
22.09.22
18:37
(14) Почитай про реальные и виртуальные таблицы.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший