Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

условие виртуальной таблицы

условие виртуальной таблицы
Я
   I_learn_1c
 
11.12.17 - 12:20
Виртуальная таблица ТоварыВРезервеНаСкладах.Остатки 

У нее в качестве документа основания определен СчетНаОплатуПокупателю и другие.

Нужно выбирать записи номенклатура-остаток, только те у которых документ-основание счет, и этот счет оплачен

Такой запрос по идее должен же работать? (это кусок из большого) 

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

этот запрос для набора данных скд, 
параметр ТипСчет выбрала тип ДокументСсылка.СчетНаОплатуПокупателю и написала в Значение ТипЗнч(&ТипСчет) тут наверно не так нужно?

подскажите пожалуйста
 
 
   mikecool
 
1 - 11.12.17 - 12:22
в условиях виртуалки 
ДокументРезерва ссылка документ.Счет 
должно работать
   I_learn_1c
 
2 - 11.12.17 - 12:29
&ИСТИНА это опечатка без амперсанда в запросе.

выдает вообще ошибку 

Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(30, 87)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&П, ТИПЗНАЧЕНИЯ(ДокументРезерва)
   I_learn_1c
 
3 - 11.12.17 - 12:32
(1) в самом начале так пробовала, что то не пошло.. подумала что с виртуальными так нельзя. сейчас попробую еще, может напутала тогда что-то
   I_learn_1c
 
4 - 11.12.17 - 12:35
Если ДокументРезерва ссылка документ.Счет то пишет ошибку "Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(30, 54)}: Не задано значение параметра "Период"
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(<<?>>&Период, ДокументРезерва ССЫЛКА Документ.СчетНаОплатуПокупателю) КАК ТоварыВРезервеНаСкладахОстатки
"
Но параметр Период не только там же, вот весь текст запроса

ВЫБРАТЬ
    Товары.Ссылка,
    Товары.Наименование,
    Товары.Артикул,
    ЕСТЬNULL(ОплаченныеСчета.КоличествоОстаток, 0) КАК ОстатокРезерв,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток,
    ЕСТЬNULL(ЗначенияТочкиЗаказаСрезПоследних.МинимальныйСтраховойЗапас, 0) КАК МинимальныйЗапас,
    ЕСТЬNULL(ЗначенияТочкиЗаказаСрезПоследних.МинимальныйСтраховойЗапас, 0) - ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК ДолгОстаток,
    ЕСТЬNULL(ЗначенияТочкиЗаказаСрезПоследних.МинимальныйСтраховойЗапас, 0) - ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) + ЕСТЬNULL(ОплаченныеСчета.КоличествоОстаток, 0) КАК ИтогоВЗаказ,
    ВложенныйЗапрос.Значение КАК Производитель
ИЗ
    Справочник.Номенклатура КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
        ПО (ТоварыНаСкладахОстатки.Номенклатура = Товары.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияТочкиЗаказа.СрезПоследних(&Период, ) КАК ЗначенияТочкиЗаказаСрезПоследних
        ПО (ЗначенияТочкиЗаказаСрезПоследних.Номенклатура = Товары.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗначенияСвойствОбъектов.Объект КАК Объект,
            ЗначенияСвойствОбъектов.Свойство КАК Свойство,
            ЗначенияСвойствОбъектов.Значение КАК Значение
        ИЗ
            РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ГДЕ
            ЗначенияСвойствОбъектов.Свойство.Наименование = "Производитель") КАК ВложенныйЗапрос
        ПО Товары.Ссылка = ВложенныйЗапрос.Объект
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
            ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура
        ИЗ
            РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ДокументРезерва ССЫЛКА Документ.СчетНаОплатуПокупателю) КАК ТоварыВРезервеНаСкладахОстатки
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
                ПО ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = СчетНаОплатуПокупателю.Ссылка
        ГДЕ
            СчетНаОплатуПокупателю.Оплачен = ИСТИНА) КАК ОплаченныеСчета
        ПО Товары.Ссылка = ОплаченныеСчета.Номенклатура.Ссылка
ГДЕ
    Товары.ЭтоГруппа = ЛОЖЬ
   hhhh
 
5 - 11.12.17 - 12:39
(4) ну задайте ему параметр Период. Что вам жалко?
   I_learn_1c
 
6 - 11.12.17 - 12:41
(5) задан он, в параметрах СКД
   I_learn_1c
 
7 - 11.12.17 - 12:43
   hhhh
 
8 - 11.12.17 - 12:45
(7) какое-то странное что-то. Вы Период сам через себя определяете?
   I_learn_1c
 
9 - 11.12.17 - 12:50
(8) Период нормально определен, это я делала еще раньше,тоже нашла по рекомендациям что так сделать правильнее, все работает, сейчас добавляю кусок

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

и с ним все перестает работать
   I_learn_1c
 
10 - 11.12.17 - 12:51
а может такое быть что вложенный запрос не видит параметры основного?
 
 Рекламное место пустует
   rabbidX
 
11 - 11.12.17 - 12:53
В СКД не нужно задавать условия на периоды виртуальных таблиц, она их добавляет сама.
   hhhh
 
12 - 11.12.17 - 12:55
а ну да, сотри везде слово &Период, она же всё равно сама его проставит.
   I_learn_1c
 
13 - 11.12.17 - 13:11
Если стереть везде период то ошибка другая 

Неверные параметры "РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки, 0"
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДокументРезерва <<?>>ССЫЛКА Документ.СчетНаОплатуПокупателю) КАК ТоварыВРезервеНаСкладахОстатки
   I_learn_1c
 
14 - 11.12.17 - 13:14
В запросе где описание условий ССЫЛКА есть только вида 

ДокументРезерва ССЫЛКА <ИмяТаблицы>

а что в качестве таблицы то?
   hhhh
 
15 - 11.12.17 - 13:17
(13) может не может быть счет дкументом резерва. В типовой точно нет. Там документ ЗаказПокупателя.
   I_learn_1c
 
16 - 11.12.17 - 13:20
(15) в типовой нет, а в конкретно данной есть.
https://yadi.sk/i/cY1ktxC93QWG44

но ругается он на ССЫЛКА. может как то еще это записать можно в условиях
   I_learn_1c
 
17 - 11.12.17 - 13:21
пишет что мол ожидается имя таблицы
   I_learn_1c
 
18 - 11.12.17 - 13:27
(16) и в регистре полно записей с документом резерва счет
   _Дайвер_
 
19 - 11.12.17 - 14:11
(0) "Нужно выбирать записи номенклатура-остаток, только те у которых документ-основание счет, и этот счет оплачен"
Тебе нужно поставить в СКД условия:
1) Где ДокументыОснования = &
2) Где ДокументыОснования.Проведен = ИСТИНА
Тогда у тебя будет все нормально.
   I_learn_1c
 
20 - 11.12.17 - 14:12
(19) ох, там я опечаталась, "..у которых документ-резерв счет.."

короче сделала еще раз с нуля кусок этот и как то заработало.. всем спасибо)

ВЫБРАТЬ
            ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
            ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура
        ИЗ
            РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ДокументРезерва ССЫЛКА Документ.СчетНаОплатуПокупателю) КАК ТоварыВРезервеНаСкладахОстатки
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
                ПО ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = СчетНаОплатуПокупателю.Ссылка
        ГДЕ
            СчетНаОплатуПокупателю.Оплачен = &Истина
   I_learn_1c
 
21 - 11.12.17 - 14:12
на истину конструктор чего то ругался, пришлось выкрутиться, знаю странно
   _Дайвер_
 
22 - 11.12.17 - 14:14
(21) Разобралась, молодец)
   kda26
 
23 - 11.12.17 - 14:17
(21)         ГДЕ
            СчетНаОплатуПокупателю.Оплачен
//= Истина ТУТ ЛИШНЕЕ
   I_learn_1c
 
24 - 11.12.17 - 14:22
(23) аа, по умолчанию подразумевается истина? а если бы нужно было указать ЛОЖЬ?
   I_learn_1c
 
25 - 11.12.17 - 14:23
(24) на ложь тоже ругается в другом аналогичном случае
   I_learn_1c
 
26 - 11.12.17 - 14:24
(22)спасибо конечно:))) но скорости этого "разбирания" точно не позавидовать
   3achem
 
27 - 11.12.17 - 14:24
(25) Вы в консоли проверяли запрос?
   I_learn_1c
 
28 - 11.12.17 - 14:25
(27) нет
   3achem
 
29 - 11.12.17 - 14:25
(20) поправлю

ГДЕ
СчетНаОплатуПокупателю.Оплачен
   kda26
 
30 - 11.12.17 - 14:25
(24) ГДЕ
         НЕ СчетНаОплатуПокупателю.Оплачен
   I_learn_1c
 
31 - 11.12.17 - 14:27
(30) ааа..даже так. вот я тормоз. спасибо за терпеливые комментарии) я буду стараться тупить меньше))
   Быдло замкадное
 
32 - 11.12.17 - 14:39
Выведи регистратор. Тогда остатки будут иметь хотя бы логический смысл.
А без него думаю 1С ничего не посчитает.
Да и какой смысл в остатке без определенных регистраторов....
   Быдло замкадное
 
33 - 11.12.17 - 14:40
была подобная глупая хотелка от пользователя.
Выведи остатки и обороты без расхода по 1 складу.

В итоге вывел ей
Начальный остаток 10
Приход 0
Расход 0
Конечный остаток 5
)))
Спрашивает они же не сходятся. Так логично, если мы вычитаем непойми что
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует