Имя: Пароль:
1C
1С v8
Ошибка запроса
0 SherifSP
 
06.05.13
16:13
Ошибка при выполнении обработчика - '{РегистрНакопления.ТоварыНаСкладах(928)}: Ошибка при вызове метода контекста (Выполнить): {(7, 8)}: Поле не найдено "Док.Контрагент"
Док.<<?>>Контрагент                                                 КАК Контрагент,'
по причине:
{РегистрНакопления.ТоварыНаСкладах(928)}: Ошибка при вызове метода контекста (Выполнить): {(7, 8)}: Поле не найдено "Док.Контрагент"
Док.<<?>>Контрагент                                                 КАК Контрагент,

по причине:
{(7, 8)}: Поле не найдено "Док.Контрагент"
Док.<<?>>Контрагент    

   ТекстЗапроса = "
   |ВЫБРАТЬ // Запрос, контролирующий остатки на складах
   |    Док.Номенклатура                                               КАК Номенклатура,
   |    Док.Номенклатура.Представление                                 КАК НоменклатураПредставление,
   |    Док.Номенклатура.ЕдиницаХраненияОстатков.Представление         КАК ЕдиницаХраненияОстатковПредставление,
   |   Док.ХарактеристикаНоменклатуры                                 КАК ХарактеристикаНоменклатуры,
   |   Док.Контрагент                                                 КАК Контрагент,
   |    ПРЕДСТАВЛЕНИЕ(Док.ХарактеристикаНоменклатуры)                 КАК ХарактеристикаНоменклатурыПредставление,
   |   Док.СерияНоменклатуры                                         КАК СерияНоменклатуры,
   |    ПРЕДСТАВЛЕНИЕ(Док.СерияНоменклатуры)                         КАК СерияНоменклатурыПредставление,
   |   %ПОЛЕ_Док_Склад%                                             КАК Склад,
   |   %ПОЛЕ_Док_Качество%                                         КАК Качество,
   |   СУММА(ВЫРАЗИТЬ(Док.Количество * Док.Коэффициент /Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Число(15,3)))
   |                                                                 КАК ДокументКоличество,
   |    ЕстьNull(МАКСИМУМ(ОстаткиБезСерии.КоличествоОстаток),0)      КАК ОстатокБезСерииКоличество,
   |    ЕстьNull(МАКСИМУМ(Остатки.КоличествоОстаток),0)              КАК ОстатокКоличество,
   //|    ЕстьNull(МАКСИМУМ(РезервыБезКонтрагента.КоличествоОстаток),0)КАК РезервыБезКонтрагентаКоличество,
   //|    ЕстьNull(МАКСИМУМ(РезервыПоКонтрагенту.КоличествоОстаток),0) КАК РезервыПоКонтрагентуКоличество,
   |    ЕстьNull(МАКСИМУМ(Резервы.КоличествоОстаток),0)              КАК РезервыКоличество,
   |    %ПОЛЕ_РезервыПоСерииКоличество%                               КАК РезервыПоСерииКоличество,
   |    ЕстьNull(МАКСИМУМ(ТоварыКПередаче.КоличествоОстаток),0)      КАК КПередачеКоличество,
   |    ЕстьNull(МАКСИМУМ(ТоварыКПередачеБезСерии.КоличествоОстаток),0) КАК КПередачеБезСерииКоличество,
   |    %ПОЛЕ_РезервыПоДокументуКоличество%                         КАК РезервыПоДокументуКоличество,
   |    %ПОЛЕ_РезервыПоДокументуБезСерии_Количество%                 КАК РезервыПоДокументуБезСерииКоличество,
   |    0                                                             КАК КПолучению,
   |    0                                                             КАК КПолучениюПоДокументуКоличество,
   |    0                                                             КАК КПередачеПоДокументуКоличество,
   |    0                                                               КАК КПередачеПоДокументуБезСерииКоличество

   |ИЗ
   |    "+ ТекстЗапросаРеквизитыДокумента + " КАК Док
1 Wobland
 
06.05.13
16:14
бывает
2 SherifSP
 
06.05.13
16:14
ТекстЗапросаРеквизитыДокумента = "
       |    (ВЫБРАТЬ
       //строки ТЧ Товары которые не являются набором
       |        Ссылка,
       |        Номенклатура,
       |        %ПОЛЕ_Склад%,
       |        %ПОЛЕ_СпособСписанияОстаткаТоваров% КАК СпособСписанияОстаткаТоваров,  
       |        %ПОЛЕ_Качество% КАК Качество,                      
       |        ХарактеристикаНоменклатуры,
       |       Контрагент,
       |        СерияНоменклатуры,
       |        Коэффициент,
       |        %ПОЛЕ_ЗаказПокупателя% КАК ЗаказПокупателя,
       |        Количество
       |        ИЗ
       |            Документ." + ИмяТаблицы + "
       |        ГДЕ
       |            Ссылка = &ДокументСсылка
       |            И НЕ Номенклатура.Комплект
       |
       //строки ТЧ СоставНабора
       |        ОБЪЕДИНИТЬ ВСЕ
       |
       |        ВЫБРАТЬ
       |        Ссылка,
       |        Номенклатура,
       |        Склад,
       |        СпособСписанияОстаткаТоваров,
       |        Качество,
       |        ХарактеристикаНоменклатуры,
       |       Контрагент,
       |        СерияНоменклатуры,
       |        Коэффициент,
       |        ЗаказПокупателя,
       |        Количество
       |        ИЗ
       |            (ВЫБРАТЬ
       |                ДокНаб.Ссылка,
       |                ДокНаб.Номенклатура,
       |               %ПОЛЕ_Набор_Склад% КАК Склад,
       |                %ПОЛЕ_Набор_СпособСписанияОстаткаТоваров% КАК СпособСписанияОстаткаТоваров,  
       |                %ПОЛЕ_Набор_Качество% КАК Качество,                      
       |                ДокНаб.ХарактеристикаНоменклатуры,
       |                ДокНаб.Контрагент,
       |                ДокНаб.СерияНоменклатуры,
       |                ДокНаб.ЕдиницаИзмерения.Коэффициент КАК Коэффициент,
       |                %ПОЛЕ_Набор_ЗаказПокупателя% КАК ЗаказПокупателя,
       |                ДокНаб.Количество * ДокТов.Количество КАК Количество
       |            ИЗ
       |                Документ." + ИмяДокумента + ".СоставНабора   КАК ДокНаб
       |                ЛЕВОЕ СОЕДИНЕНИЕ Документ." + ИмяТаблицы + " КАК ДокТов
       |                    ПО ДокТов.КлючСтроки = ДокНаб.КлючСтроки
       |                     И ДокТов.Ссылка     = &ДокументСсылка
       |            ГДЕ
       |                ДокНаб.Ссылка = &ДокументСсылка
       |            ) КАК Набор
       |
       |        )
       |";
3 SherifSP
 
06.05.13
16:16
(1) Ну я же все поля правильно назвал
4 IBTM
 
06.05.13
16:18
косяк платформы
5 SherifSP
 
06.05.13
16:18
(4) Чудес не бывает)
6 Ненавижу 1С
 
гуру
06.05.13
16:20
Нет поля Контрагент
7 SherifSP
 
06.05.13
16:21
(6) В документе есть
8 SherifSP
 
06.05.13
16:25
Док.Ссылка.Контрагент - так тоже ошибка
9 del123
 
06.05.13
16:26
тормозни в отладчике перед выполнением запроса и посмотри как выглядит текст запроса уже после всех вставок.
10 SherifSP
 
06.05.13
16:34
(9) Уже разобрался, спасибо)
11 SherifSP
 
06.05.13
16:42
Вот новая ошибка {(82, 16)}: Поле не найдено "Резервы.Склад"
И Док.Склад = <<?>>Резервы.Склад


Текс запроса =

ВЫБРАТЬ // Запрос, контролирующий остатки на складах
   Док.Номенклатура                                               КАК Номенклатура,
   Док.Номенклатура.Представление                                 КАК НоменклатураПредставление,
   Док.Номенклатура.ЕдиницаХраненияОстатков.Представление         КАК ЕдиницаХраненияОстатковПредставление,
  Док.ХарактеристикаНоменклатуры                                 КАК ХарактеристикаНоменклатуры,
  Док.Ссылка.Контрагент                                         КАК Контрагент,
   ПРЕДСТАВЛЕНИЕ(Док.ХарактеристикаНоменклатуры)                 КАК ХарактеристикаНоменклатурыПредставление,
  Док.СерияНоменклатуры                                         КАК СерияНоменклатуры,
   ПРЕДСТАВЛЕНИЕ(Док.СерияНоменклатуры)                         КАК СерияНоменклатурыПредставление,
  Док.Склад                                             КАК Склад,
  Док.Качество                                         КАК Качество,
  СУММА(ВЫРАЗИТЬ(Док.Количество * Док.Коэффициент /Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Число(15,3)))
                                                                КАК ДокументКоличество,
   ЕстьNull(МАКСИМУМ(ОстаткиБезСерии.КоличествоОстаток),0)      КАК ОстатокБезСерииКоличество,
   ЕстьNull(МАКСИМУМ(Остатки.КоличествоОстаток),0)              КАК ОстатокКоличество,
   ЕстьNull(МАКСИМУМ(РезервыБезКонтрагента.КоличествоОстаток),0)КАК РезервыБезКонтрагентаКоличество,
   ЕстьNull(МАКСИМУМ(РезервыПоКонтрагенту.КоличествоОстаток),0) КАК РезервыПоКонтрагентуКоличество,
   ЕстьNull(МАКСИМУМ(Резервы.КоличествоОстаток),0)              КАК РезервыКоличество,
   0                               КАК РезервыПоСерииКоличество,
   ЕстьNull(МАКСИМУМ(ТоварыКПередаче.КоличествоОстаток),0)      КАК КПередачеКоличество,
   ЕстьNull(МАКСИМУМ(ТоварыКПередачеБезСерии.КоличествоОстаток),0) КАК КПередачеБезСерииКоличество,
   ЕстьNull(Максимум(РезервыПоДокументу.КоличествоОстаток),0)                         КАК РезервыПоДокументуКоличество,
   0                 КАК РезервыПоДокументуБезСерииКоличество,
   0                                                             КАК КПолучению,
   0                                                             КАК КПолучениюПоДокументуКоличество,
   0                                                             КАК КПередачеПоДокументуКоличество,
   0                                                               КАК КПередачеПоДокументуБезСерииКоличество
ИЗ
   
   Документ.РеализацияТоваровУслуг.Товары
КАК Док

ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад в (&СписокСкладов) И
       Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)  
       //УСЛОВИЕ_Качество
   ) КАК Остатки
ПО
   Док.Номенклатура                = Остатки.Номенклатура
И Док.ХарактеристикаНоменклатуры  = Остатки.ХарактеристикаНоменклатуры
И Док.СерияНоменклатуры            = Остатки.СерияНоменклатуры
И Док.Качество = Остатки.Качество
И Док.Склад = Остатки.Склад
ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад в (&СписокСкладов) И
       Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)
       //УСЛОВИЕ_Качество
   ) КАК ОстаткиБезСерии
ПО
   Док.Номенклатура                = ОстаткиБезСерии.Номенклатура
И Док.ХарактеристикаНоменклатуры    = ОстаткиБезСерии.ХарактеристикаНоменклатуры
И Док.Качество = ОстаткиБезСерии.Качество
И Док.Склад = ОстаткиБезСерии.Склад

ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.РезервПоКонтрагенту.Остатки(, Склад в (&СписокСкладов) И
       Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)) КАК РезервыБезКонтрагента
ПО
   Док.Номенклатура                = РезервыБезКонтрагента.Номенклатура
И Док.ХарактеристикаНоменклатуры    = РезервыБезКонтрагента.Характеристика
И Док.Склад                       = РезервыБезКонтрагента.Склад
 И (Док.ЗаказПокупателя = &ПустойЗаказПокупателя ИЛИ Док.СпособСписанияОстаткаТоваров <> &ИзРезерва)
И Док.Склад = Резервы.Склад
И Док.Качество = &Новый
ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.РезервПоКонтрагенту.Остатки(, Склад в (&СписокСкладов) И
       Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)) КАК РезервыПоКонтрагенту
ПО
   Док.Номенклатура                = РезервыПоКонтрагенту.Номенклатура
И Док.ХарактеристикаНоменклатуры    = РезервыПоКонтрагенту.Характеристика
И Док.Склад                       = РезервыПоКонтрагенту.Склад
И Док.Контрагент                  = РезервыПоКонтрагенту.Контрагент
 И (Док.ЗаказПокупателя = &ПустойЗаказПокупателя ИЛИ Док.СпособСписанияОстаткаТоваров <> &ИзРезерва)
И Док.Склад = Резервы.Склад
И Док.Качество = &Новый
ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад в (&СписокСкладов) И
       Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)) КАК Резервы
ПО
   Док.Номенклатура                = Резервы.Номенклатура
И Док.ХарактеристикаНоменклатуры    = Резервы.ХарактеристикаНоменклатуры
 И (Док.ЗаказПокупателя = &ПустойЗаказПокупателя ИЛИ Док.СпособСписанияОстаткаТоваров <> &ИзРезерва)
И Док.Склад = Резервы.Склад
И Док.Качество = &Новый


ЛЕВОЕ СОЕДИНЕНИЕ
   (ВЫБРАТЬ ТЧ.Номенклатура,
   ТЧ.Склад,
   ТЧ.ХарактеристикаНоменклатуры
   //ПОЛЕ_ТЧ_Серия
   //количество, списываемое за счет резерва, не может превышать количество указанное в документе
   ,ВЫБОР КОГДА Сумма(ТЧ.ДокументКоличество)<Сумма(ВремРезервы.КоличествоОстаток) ТОГДА
     Сумма(ТЧ.ДокументКоличество)
   ИНАЧЕ Сумма(ВремРезервы.КоличествоОстаток)
   КОНЕЦ КАК КоличествоОстаток
   ИЗ
       //сгруппированная табличная часть документа с отбором строк которые списываются из резерва
       (ВЫБРАТЬ  
           Номенклатура,
           Склад,
           ЗаказПокупателя,
           ХарактеристикаНоменклатуры
           //ПОЛЕ_Серия
           ,СУММА(ВЫРАЗИТЬ(Количество * Коэффициент /Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Число(15,3))) КАК ДокументКоличество
       ИЗ
           
   Документ.РеализацияТоваровУслуг.Товары
КАК ВремДок
       ГДЕ  ВремДок.Ссылка = &ДокументСсылка
           И ВремДок.ЗаказПокупателя <> &ПустойЗаказПокупателя и ВремДок.СпособСписанияОстаткаТоваров = &ИзРезерва
       СГРУППИРОВАТЬ ПО
           Номенклатура,
           Склад,
           ЗаказПокупателя,
           ХарактеристикаНоменклатуры
           //ПОЛЕ_Серия
       ) КАК ТЧ
   ЛЕВОЕ СОЕДИНЕНИЕ
       РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад в (&СписокСкладов) И
           Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)
           ) КАК ВремРезервы
   ПО ТЧ.Номенклатура = ВремРезервы.Номенклатура
       И ТЧ.Склад = ВремРезервы.Склад
       И ТЧ.ЗаказПокупателя = ВремРезервы.ДокументРезерва
       И ТЧ.ХарактеристикаНоменклатуры = ВремРезервы.ХарактеристикаНоменклатуры
       //СОЕДИНЕНИЕ_Серия_ВремРезервы
   СГРУППИРОВАТЬ ПО
       ТЧ.Номенклатура,
       ТЧ.Склад,
       ТЧ.ХарактеристикаНоменклатуры
       //ПОЛЕ_ТЧ_Серия
) КАК РезервыПоДокументу
ПО
Док.Номенклатура                 = РезервыПоДокументу.Номенклатура
И Док.Склад = РезервыПоДокументу.Склад
И Док.ЗаказПокупателя <> &ПустойЗаказПокупателя И Док.СпособСписанияОстаткаТоваров = &ИзРезерва
И Док.ХарактеристикаНоменклатуры = РезервыПоДокументу.ХарактеристикаНоменклатуры
//СОЕДИНЕНИЕ_Серия_РезервыПоДокументу
//ЗАПРОС_РезервыПоДокументуБезСерии

ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(, Склад в (&СписокСкладов) И
       Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)
       //УСЛОВИЕ_Качество
   ) КАК ТоварыКПередаче
ПО
   Док.Номенклатура                = ТоварыКПередаче.Номенклатура
И Док.ХарактеристикаНоменклатуры    = ТоварыКПередаче.ХарактеристикаНоменклатуры
И Док.СерияНоменклатуры            = ТоварыКПередаче.СерияНоменклатуры
И Док.Склад = ТоварыКПередаче.Склад
И Док.Качество = ТоварыКПередаче.Качество
ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(, Склад в (&СписокСкладов) И
       Номенклатура В (
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг.Товары
ГДЕ  Ссылка = &ДокументСсылка
)
       //УСЛОВИЕ_Качество
   ) КАК ТоварыКПередачеБезСерии
ПО
   Док.Номенклатура                = ТоварыКПередачеБезСерии.Номенклатура
И Док.ХарактеристикаНоменклатуры    = ТоварыКПередачеБезСерии.ХарактеристикаНоменклатуры
И Док.Склад = ТоварыКПередачеБезСерии.Склад
И Док.Качество = ТоварыКПередачеБезСерии.Качество

ГДЕ
   Док.Ссылка  =  &ДокументСсылка
   И Не Док.Номенклатура.Комплект
   И Не Док.Номенклатура.Услуга
   И Док.Склад.ВидСклада<>&НТТ И Док.Склад.ВидСклада<>&Розничный
СГРУППИРОВАТЬ ПО

   Док.Номенклатура,
  Док.ХарактеристикаНоменклатуры,
  Док.СерияНоменклатуры,
  Док.Ссылка.Контрагент,
  Док.Качество,                                    
   Док.Склад

ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления.ТоварыНаСкладах.Остатки // Блокирующие чтение таблицы остатков регистра для разрешения коллизий многопользовательской работы

ИТОГИ СУММА (ДокументКоличество), МАКСИМУМ(ОстатокБезСерииКоличество), МАКСИМУМ(РезервыКоличество),
        МАКСИМУМ(КПередачеКоличество), МАКСИМУМ(РезервыПоДокументуКоличество), Максимум(РезервыПоСерииКоличество),
       Максимум(КПередачеБезСерииКоличество), МАКСИМУМ(РезервыПоДокументуБезСерииКоличество),
       Максимум(КПолучению), Максимум(КПередачеПоДокументуКоличество), Максимум(КПередачеПоДокументуБезСерииКоличество), Максимум(КПолучениюПоДокументуКоличество)
ПО Номенклатура,
  ХарактеристикаНоменклатуры,
   Склад
   ,Качество


Было нормально пока не добавил

   |ЛЕВОЕ СОЕДИНЕНИЕ
   |    РегистрНакопления.РезервПоКонтрагенту.Остатки(, Склад в (&СписокСкладов) И
   |        %ВыборкаПоНоменклатуре%) КАК РезервыБезКонтрагента
   |ПО
   |    Док.Номенклатура                = РезервыБезКонтрагента.Номенклатура
   | И Док.ХарактеристикаНоменклатуры    = РезервыБезКонтрагента.Характеристика
   | И Док.Склад                       = РезервыБезКонтрагента.Склад
   | //СОЕДИНЕНИЕ_ДокументРезерва_Резервы
   | //СОЕДИНЕНИЕ_Склад_Резервы
   | //СОЕДИНЕНИЕ_Качество_Резервы
   
   //таблица товаров в резерве РезервПоКонтрагенту на складе с учетом контрагента (определяется для строк, которые списываются за счет свободного остатка)
   
   |ЛЕВОЕ СОЕДИНЕНИЕ
   |    РегистрНакопления.РезервПоКонтрагенту.Остатки(, Склад в (&СписокСкладов) И
   |        %ВыборкаПоНоменклатуре%) КАК РезервыПоКонтрагенту
   |ПО
   |    Док.Номенклатура                = РезервыПоКонтрагенту.Номенклатура
   | И Док.ХарактеристикаНоменклатуры    = РезервыПоКонтрагенту.Характеристика
   | И Док.Склад                       = РезервыПоКонтрагенту.Склад
   | И Док.Контрагент                  = РезервыПоКонтрагенту.Контрагент
   | //СОЕДИНЕНИЕ_ДокументРезерва_Резервы
   | //СОЕДИНЕНИЕ_Склад_Резервы
   | //СОЕДИНЕНИЕ_Качество_Резервы
12 Wobland
 
06.05.13
16:43
ждём 21 минуту...
13 IBTM
 
06.05.13
16:45
(11) вот это точно косяк платформы!!!
14 SherifSP
 
06.05.13
16:50
(13) Я это уже слышал)
15 SherifSP
 
06.05.13
16:56
(12) Что не так добавил?