прошу помощи по СКД и периоду |
Я |
26.07.10 — 16:24
делаю как в Хрусталевой: параметр период ставлю в «стандартный период»,
2 параметра НачалоПеирода и КонецПериода с соответствующими выражениями: &период.ДатаНачала и &период.ДатаОкончания… При формировании отчета ошибка:
Ошибка обработки представления «РегистрНакопления.ТоварыНаСкладах.Остатки:Несоответствие типов (параметр номер «»1″»)»
<<?>>РегистрНакопления.ТоварыНаСкладах.Остатки(&П, ) КАК ТоварыНаСкладахОстатки
читал http://www.forum.mista.ru/topic.php?id=411467 , не понял
как сделать, чтобы период правильно использовался?
1 — 26.07.10 — 16:27
(0) А без точки пробовал?
Делаешь 2 параметра периодНач и ПериодКон, они не доступны для изменения, а параметр параметрПериод делаешь стандартным периодом и доступным для изменения.
В свойствах периодНач и периодКон устанавливаешь, чтобы они принимали значения начала и конца параметрПериод.
В запросе используешь: периодНач и периодКон
2 — 26.07.10 — 16:27
Потому что Остатки использует «свой» Период.
3 — 26.07.10 — 16:29
а что делать? у меня там остатки, срез последних да еще и движения обрабатываются в запросе…
4 — 26.07.10 — 16:29
5 — 26.07.10 — 16:34
(1)(4) http://s004.radikal.ru/i205/1007/6f/3da989298606.png так и сделано…
кусок текста запроса:
ВЫБРАТЬ
ТоварыНаСкладах.Номенклатура КАК Номенклатура,
ТоварыНаСкладах.Склад КАК Склад,
СУММА(ТоварыНаСкладах.Количество) КАК Количество
ПОМЕСТИТЬ Продажи
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
ТоварыНаСкладах.Период МЕЖДУ &НачалоПериода И &КонецПериода
И (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваров
ИЛИ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.Ремонт)
СГРУППИРОВАТЬ ПО
ТоварыНаСкладах.Номенклатура,
ТоварыНаСкладах.Склад
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ТоварыНаСкладахОстатки
;
6 — 26.07.10 — 16:39
А если использовать более экзотические имена, вдруг КонецПериода какое-нидь зарезервированное …
7 — 26.07.10 — 16:42
(6) сначала было начДата и конДата — его это не спасало, подумал, что если как у хрусталевой 1 к 1 сделать — может взлетит
8 — 26.07.10 — 16:42
страница 391
9 — 26.07.10 — 16:42
(7, Не, тогда нету пока умных мыслей в этом направлении. Зато ветку поднял
10 — 26.07.10 — 16:44
блин, посмотрел на (6), подумал, а вдруг? переименовал Период в ПериодОтчета — заработало…
11 — 26.07.10 — 16:46
Не зря я все параметры запроса называю параметрИмяПараметра
Asmody
12 — 26.07.10 — 16:56
(10) сам нарывался на такое. только после того, как у добавленного мной параметра Период постоянно слетал тип значения, до меня доперло, что «Период» типа «зарезервированное» имя. ПериодОтчета — самое оно
Два запроса в СКД. Один по ОстаткиИОбороты, второй по Остатки. Соответственно, у каждой из виртуальных таблиц указано (согласно рекомендациям по решению этого глюка) параметры &нПериод, &кПериод и у таблицы остатков &нПериод. Данные параметры имеют тип Дата, а не СтандартныйПериод. В запросах эти параметры указаны принудительно. И один фиг ошибка «Ошибка обработки представления РегистрНакопления.ТоварыНаСкладах.Остатки. Несоответствие типов (Параметр номер «»1″»)», РегистрНакопления.ТоварыНаСкладах.Остатки(П3, Организация В(П4)) КАК ОстаткиТоваровНаСкладах. Как ещё можно решить эту ошибку?
а че за проблема то?? а то я первый раз слышу
Тоже не врубаюсь, в чем проблема. Подозреваю, что фигню какую-то делаешь…
Ну там связано с тем, что &Период, &НачалоПериода и &КонецПериода, это зарезервированные СКД выражения. Которые подставляются по умолчанию в параметры. При указании двух наборов данных в СКД например таблицы ОстаткиИОбороты и таблицы Остатки, СКД пытается в таблицу остатки передать в качестве параметра даты &Период. А он имеет тип «Стандартный период» и дату из него получить не получится. Вот подобная проблема. Только приведенное там решение нефига не помогает (последнее сообщение)
свои параметры периода указывай как параметры компоновки(те, что в скобках) и проблемы не будет
Как раз так и делаю — все равно проблемы. Ну в общем помогло то, что принудительно сделал НачалоПериода и КонецПериода (зарезервированные) доступными пользователю. Так работает.
> тип «Стандартный период» и дату из него получить не получится. ясен пень, у него ведь 2 даты: .ДатаНачала и .ДатаОкончания
1. Вводишь новый параметр ПериодОтчета — стандартный период. 2. НачалоПериода в занчениях приравниваешь к &ПериодОтчета.ДатаНачала 2. Аналогично КонецПериода = &ПериодОтчета.ДатаОкончания 3. Период = тоже &ПериодОтчета.ДатаОкончания 4. Ограничение доступности ставишь вееде кроме ПериодОтчета Все.
Конструктор запроса — Компоновка данных — Слева есть кнопочка с параметрами виртуальных таблиц — там укажи, что в качестве Даты Начала будет &нПериод
Стандартные параметры реально бесят тем, что вылезают когда не надо, даже если указаны явно свои имена параметров виртуальных таблиц.. вот зачем это сделали, криво же..
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Опубликовано: 16.02.2018 /
Рубрики: 1С
Разрабатывал я простенький отчет на СКД в 1С:ERP Управление предприятием 2 (2.2.3.138)
Краткое ТЗ такое:
За основу взять типовой отчет «Ведомость товаров на складах»
Добавить возможность выводить в поля отчета следующие показатели:
-
Коэффициент. Вычисляется как отношение количества конечного остатка за период к количеству продаж за соответствуюий период в единицах хранения
-
Цена. Последняя актуальная цена товара в соответствующий период по виду цен = «Розничная»
-
Количество. Количество продаж в единицах хранения (расход в отчете — общий расход со склада, нужны только продажи)
-
Сумма. Выручка от продаж
Задача простейшая,пишу такой запрос (тут часть):
Товары КАК Товары
ПОЛНОЕ СОЕДИНЕНИЕ Продажи КАК Продажи
ПО Товары.Номенклатура = Продажи.Номенклатура
И Товары.Характеристика = Продажи.Характеристика
И Товары.Склад = Продажи.Склад
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
ПО Товары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И Товары.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
И столкнулся с такой ошибкой:
Ошибка обработки представления «РегистрСведений.ЦеныНоменклатуры.СрезПоследних:Несоответствие типов (Параметр номер «»1″»)»
Проблема решается не хитрым путем, но решил сохранить ее решение для себя и для вас.
Решение:
Нужно устанавливать параметры для СКД на вкладке «компоновка данных» в конструкторе запроса.
Пример:
и
прошу помощи по СКД и периоду |
Я |
Fragster
26.07.10 — 16:24
делаю как в Хрусталевой: параметр период ставлю в «стандартный период»,
2 параметра НачалоПеирода и КонецПериода с соответствующими выражениями: &период.ДатаНачала и &период.ДатаОкончания… При формировании отчета ошибка:
Ошибка обработки представления «РегистрНакопления.ТоварыНаСкладах.Остатки:Несоответствие типов (параметр номер «»1″»)»
<<?>>РегистрНакопления.ТоварыНаСкладах.Остатки(&П, ) КАК ТоварыНаСкладахОстатки
читал http://www.forum.mista.ru/topic.php?id=411467 , не понял
как сделать, чтобы период правильно использовался?
YF
1 — 26.07.10 — 16:27
(0) А без точки пробовал?
Делаешь 2 параметра периодНач и ПериодКон, они не доступны для изменения, а параметр параметрПериод делаешь стандартным периодом и доступным для изменения.
В свойствах периодНач и периодКон устанавливаешь, чтобы они принимали значения начала и конца параметрПериод.
В запросе используешь: периодНач и периодКон
IronDemon
2 — 26.07.10 — 16:27
Потому что Остатки использует «свой» Период.
Fragster
3 — 26.07.10 — 16:29
а что делать? у меня там остатки, срез последних да еще и движения обрабатываются в запросе…
YF
4 — 26.07.10 — 16:29
Fragster
5 — 26.07.10 — 16:34
(1)(4) http://s004.radikal.ru/i205/1007/6f/3da989298606.png так и сделано…
кусок текста запроса:
ВЫБРАТЬ
ТоварыНаСкладах.Номенклатура КАК Номенклатура,
ТоварыНаСкладах.Склад КАК Склад,
СУММА(ТоварыНаСкладах.Количество) КАК Количество
ПОМЕСТИТЬ Продажи
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
ТоварыНаСкладах.Период МЕЖДУ &НачалоПериода И &КонецПериода
И (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваров
ИЛИ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.Ремонт)
СГРУППИРОВАТЬ ПО
ТоварыНаСкладах.Номенклатура,
ТоварыНаСкладах.Склад
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ТоварыНаСкладахОстатки
;
YF
6 — 26.07.10 — 16:39
А если использовать более экзотические имена, вдруг КонецПериода какое-нидь зарезервированное …
Fragster
7 — 26.07.10 — 16:42
(6) сначала было начДата и конДата — его это не спасало, подумал, что если как у хрусталевой 1 к 1 сделать — может взлетит
Fragster
8 — 26.07.10 — 16:42
страница 391
YF
9 — 26.07.10 — 16:42
(7, Не, тогда нету пока умных мыслей в этом направлении. Зато ветку поднял
Fragster
10 — 26.07.10 — 16:44
блин, посмотрел на (6), подумал, а вдруг? переименовал Период в ПериодОтчета — заработало…
YF
11 — 26.07.10 — 16:46
Не зря я все параметры запроса называю параметрИмяПараметра
Asmody
12 — 26.07.10 — 16:56
(10) сам нарывался на такое. только после того, как у добавленного мной параметра Период постоянно слетал тип значения, до меня доперло, что «Период» типа «зарезервированное» имя. ПериодОтчета — самое оно
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Ошибка по причине Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.
Изучив статью, вы:
- ознакомитесь с порядком исправления ошибки в запросе и командах 1С и узнаете, как исправить;
- получите два внешних отчета, демонстрирующих ошибочный и правильный коды.
В какой момент выходит ошибка
Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:
Исправляется подобная ошибка восстановлением правильной последовательности в строке параметров команды или указанием нужного типа данных Ошибка 1С Несоответствие типов наиболее часто появляется при написании запросов и при некорректном указании параметров команды.
Рассмотрим причины ее возникновения и исправление на конкретном примере.
Ошибка в таблице запроса
При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».
В окне сообщений уже указано место возникновения ошибки: Несоответствие типов Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.
Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.
Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1 С Предприятие:
Из описания видно, что команда СрезПоследних имеет 2 параметра:
- Период;
- Отбор.
Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).
После исправления команды запустите отчет в 1 С Бухгалтерия по кнопке Главное меню — Файл — Открыть:
Теперь отчет формируется правильно!
Исправление ошибки в команде 1С
При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):
1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.
Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.
Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:
Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:
- СписокСсылок;
- ОбластьПоиска;
- ВключитьОбъекты;
- ИсключитьОбъекты.
Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений). Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).
После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:
Теперь команда поиска ссылок на контрагента отрабатывает правильно.
Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!
Заказать консультацию
По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.
Два запроса в СКД. Один по ОстаткиИОбороты, второй по Остатки. Соответственно, у каждой из виртуальных таблиц указано (согласно рекомендациям по решению этого глюка) параметры &нПериод, &кПериод и у таблицы остатков &нПериод. Данные параметры имеют тип Дата, а не СтандартныйПериод. В запросах эти параметры указаны принудительно. И один фиг ошибка «Ошибка обработки представления РегистрНакопления.ТоварыНаСкладах.Остатки. Несоответствие типов (Параметр номер «»1″»)», РегистрНакопления.ТоварыНаСкладах.Остатки(П3, Организация В(П4)) КАК ОстаткиТоваровНаСкладах. Как ещё можно решить эту ошибку?
а че за проблема то?? а то я первый раз слышу
Тоже не врубаюсь, в чем проблема. Подозреваю, что фигню какую-то делаешь…
Ну там связано с тем, что &Период, &НачалоПериода и &КонецПериода, это зарезервированные СКД выражения. Которые подставляются по умолчанию в параметры. При указании двух наборов данных в СКД например таблицы ОстаткиИОбороты и таблицы Остатки, СКД пытается в таблицу остатки передать в качестве параметра даты &Период. А он имеет тип «Стандартный период» и дату из него получить не получится. Вот подобная проблема. Только приведенное там решение нефига не помогает (последнее сообщение)
свои параметры периода указывай как параметры компоновки(те, что в скобках) и проблемы не будет
Как раз так и делаю — все равно проблемы. Ну в общем помогло то, что принудительно сделал НачалоПериода и КонецПериода (зарезервированные) доступными пользователю. Так работает.
> тип «Стандартный период» и дату из него получить не получится. ясен пень, у него ведь 2 даты: .ДатаНачала и .ДатаОкончания
1. Вводишь новый параметр ПериодОтчета — стандартный период. 2. НачалоПериода в занчениях приравниваешь к &ПериодОтчета.ДатаНачала 2. Аналогично КонецПериода = &ПериодОтчета.ДатаОкончания 3. Период = тоже &ПериодОтчета.ДатаОкончания 4. Ограничение доступности ставишь вееде кроме ПериодОтчета Все.
Конструктор запроса — Компоновка данных — Слева есть кнопочка с параметрами виртуальных таблиц — там укажи, что в качестве Даты Начала будет &нПериод
Стандартные параметры реально бесят тем, что вылезают когда не надо, даже если указаны явно свои имена параметров виртуальных таблиц.. вот зачем это сделали, криво же..
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Ошибка Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.
Изучив статью, вы:
- ознакомитесь с порядком исправления ошибки в запросе и командах 1С;
- получите два внешних отчета, демонстрирующих ошибочный и правильный коды.
Содержание
- Несоответствие типов в 1С 8.3
- Ошибка в таблице запроса
- Исправление ошибки в команде 1С
Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:
Исправляется подобная ошибка восстановлением правильной последовательности в строке параметров команды или указанием нужного типа данных Ошибка 1С Несоответствие типов наиболее часто появляется при написании запросов и при некорректном указании параметров команды.
Рассмотрим причины ее возникновения и исправление на конкретном примере.
Ошибка в таблице запроса
При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».
В окне сообщений уже указано место возникновения ошибки: Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.
Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.
Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:
Из описания видно, что команда СрезПоследних имеет 2 параметра:
- Период;
- Отбор.
Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).
После исправления команды запустите отчет в 1С по кнопке Главное меню — Файл — Открыть:
Теперь отчет формируется правильно!
Скачать внешний отчет Вывод списка цен номенклатуры
Исправление ошибки в команде 1С
При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):
1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.
Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.
Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:
Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:
- СписокСсылок;
- ОбластьПоиска;
- ВключитьОбъекты;
- ИсключитьОбъекты.
Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений). Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).
После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:
Теперь команда поиска ссылок на контрагента отрабатывает правильно.
Скачать внешний отчет Поиск ссылок на контрагента
Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!
См. также:
- Неоднозначное поле в запросе
- Исправление технических ошибок при работе с 1С:Бухгалтерия: для начинающих и опытных пользователей
- Метод объекта не обнаружен
- Неизвестный идентификатор формы
- Переменная не определена
Если Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.
Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Содержание:
1. Несоответствие типов данных
2. Ошибка внутри таблицы в запросе
3. Причина ошибки внутри команды
Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению.
1. Несоответствие типов данных
Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.
В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):
Рис. 1 Сообщение об ошибке несоответствии типов
Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.
2. Ошибка внутри таблицы в запросе
Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».
Рис. 2 Ошибка Неоднозначное поле
Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:
«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.
Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:
Рис. 3 Исправление ошибки несоответствия типов (Параметр номер 1)
При помощи «Синтаксис-Помощника», в меню конфигурации 1С можно сверить, насколько правильно была написана команда:
Рис. 4 Проверка написания команды с помощью Синтаксис-Помощника
Согласно описанию, в команде «СрезПоследних» находится два параметра: «Отбор» и «Период».
В случае, когда параметр «Период» не был указан, в данной команде будет пустое поле, а после запятой будет написан параметр для отбора. Для нашего примера этим параметром будет «ТипЦен». После правок команда видоизменится так: «СрезПоследних(,ТипЦен = &ТипЦен).
Рис. 5 Исправление команды СрезПоследних
После того как команда СрезПоследних была исправлена, стоит снова сформировать отчёт из «Главное меню → Файл → Открыть».
3. Причина ошибки внутри команды
Имеем такую ошибку: когда происходит поиск вариантов ссылок на контрагента в отчёте системы 1С, то возникает ошибка «Несоответствие типов (параметр номер «2»), как на скриншоте ниже:
Рис. 6 Несоответствие типов (параметр номер «2»)
В системе 1С указано то место, где произошла неполадка – это недопустимый параметр номер 2, если кликнуть на кнопку «ERROR». Чтобы её исправить нужно запустить отчёт в конфигураторе системы 1С, далее ищем форму строчки, в которой написана команда «НайтиПоСсылкам», внутри модуля.
Рис. 7 Команда НайтиПоСсылкам внутри модуля
Можно проверить верность того, как написана команда при помощи «Синтаксис-Помощника» в панели меню системы 1С, кнопка будет выделена:
Рис. 8 Команда НайтиПоСсылкам в Синтаксис-Помощнике
По описанию следует: в команде «НайтиПоСсылкам» находится такие четыре параметра: СписокСсылок, ИсключитьОбъекты, ВключитьОбъекты и ОбластьПоиска.
В параметре с названием «ОбластьПоиска» будет тип «массив», в примере указана единица. Параметр «ОбластьПоиска» — не является обязательным, так что команда, которую исправили будет иметь следующий новый вид: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).
Рис. 9 Тип массив в НайтиПоСсылкам
Далее запускаем наш отчёт в системе 1С.
После наших действий команда работает исправно и ошибки нет.
Рис. 10 Проверка на наличие ошибок в системе конфигурации 1С
В данной статье было рассмотрено как устранить ошибку несоответствия типов в 1С. На примерах была устранена эта ошибка для запроса и для команды. По данному алгоритму можно всегда устранять данную ошибку.
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Всем привет! Задача: составить отчет по регистру Касса (Вид регистра — Остатки) в табличном документе — НЕ ЧЕРЕЗ СХЕМУ КОМПАНОВКИ ДАННЫХ. Мной сделан макет, подобный тому что делает конструктор печати….Создана форма отчета, на которой расположены НачалоПериода ; КонецПериода и кнопка СФОРМИРОВАТЬ непосредственно сам отчет..Который бы выводил дату начала и конца, перечень номенклатуры, обороты кассы по каждой позиции и общий итог. .. версия 1С — 8.1 . Ранее всегда создавал отчет через схему компановки данных….Может уже было что то подобное на форуме ?(я искал, но может быть не слишком тщательно, всетки много тут тем уж было)…… В общем при нажатии кнопки сформировать отчет не формируется а выводит ошибки….Очевидно код составил я не правильно. Прошу вас если не затруднит помочь
Код:
Процедура СформироватьОтчетНажатие(Элемент)
НачалоПериода = ЭлементыФормы.ДатаНачала;
КонецПериода = ЭлементыФормы.ДатаОкончания;
Макет1 = Отчеты.ОтчетПоКассеВМакете.ПолучитьМакет(«Макет1»);
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| КассаОстаткиИОбороты.СтоимостьНачальныйОстаток КАК НачальныйОстаток,
| КассаОстаткиИОбороты.СтоимостьОборот КАК Оборот,
| КассаОстаткиИОбороты.СтоимостьКонечныйОстаток КАК КонечныйОстаток,
| СпрНоменклатура.Ссылка КАК ПереченьНоменклатуры
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Касса.ОстаткиИОбороты(&НачалоПериода, &КонецПериода) КАК КассаОстаткиИОбороты
| ПО СпрНоменклатура.Ссылка = КассаОстаткиИОбороты.Номенклатура»;
Запрос.УстановитьПараметр(«НачалоПериода», НачалоПериода);
Запрос.УстановитьПараметр(«КонецПериода», КонецПериода);
ТабДок = ЭлементыФормы.ПереченьНоменклатуры;
//Запрос.Параметры.Вставить(«Ссылка», Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет1.ПолучитьОбласть(«Заголовок»);
ОбластьПереченьНоменклатурыШапка = Макет1.ПолучитьОбласть(«ПереченьНоменклатурыШапка»);
ОбластьПереченьНоменклатуры = Макет1.ПолучитьОбласть(«ПереченьНоменклатуры»);
ОбластьИтог = Макет1.ПолучитьОбласть(«Всего»);
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
//Шапка.Параметры.Заполнить(Выборка);
//ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();
СуммаНачальныйОстаток = 0;
СуммаОборот = 0;
СуммаКонечныйОстаток = 0;
Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл
ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);
ТабДок.Вывести(ОбластьПереченьНоменклатуры, ВыборкаПереченьНоменклатуры.Уровень());
СуммаНачальныйОстаток = СуммаНачальныйОстаток + ВыборкаПереченьНоменклатуры.НачальныйОстаток;
СуммаОборот = СуммаОборот + ВыборкаПереченьНоменклатуры.Оборот;
СуммаКонечныйОстаток = СуммаКонечныйОстаток + ВыборкаПереченьНоменклатуры.КонечныйОстаток;
КонецЦикла;
ОбластьИтог.Параметры.ВсегоНачальныйОстаток = СуммаНачальныйОстаток;
ОбластьИтог.Параметры.ВсегоОборот = СуммаОборот;
ОбластьИтог.Параметры.ВсегоКонечныйОстаток = СуммаКонечныйОстаток;
ТабДок.Вывести(ОбластьИтог);
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
КонецПроцедуры
-
В конфигурации УТ11 есть типовой отчет по валовой прибыли, так вот нужно добавить туда колонку остаток номенклатуры, ну что то не могу победить запрос выдает ошибку
Ошибка обработки представления "РегистрНакопления.ТоварыНаСкладах.Остатки:Несоответствие типов (Параметр номер ""1"")" ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрНакопления.ТоварыНаСкладах.Остатки(&П3) КАК ТоварыНаСкладахОстатки
вот код запроса
ВЫБРАТЬ РАЗРЕШЕННЫЕ СУММА(Таблица.Количество) КАК Количество, СУММА(Таблица.Выручка) КАК Выручка, СУММА(Таблица.Себестоимость) КАК Себестоимость, СУММА(Таблица.ДопРасходы) КАК ДопРасходы, СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы) КАК ВаловаяПрибыль, ВЫРАЗИТЬ(ВЫБОР КОГДА СУММА(Таблица.Выручка) <> 0 ТОГДА (СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы)) / СУММА(Таблица.Выручка) ИНАЧЕ 0 КОНЕЦ * 100 КАК ЧИСЛО(15, 2)) КАК Рентабельность, ВЫБОР КОГДА Таблица.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ПродажиМеждуОрганизациями, Таблица.Номенклатура КАК Номенклатура, Таблица.Характеристика КАК Характеристика, Таблица.Организация КАК Организация, Таблица.Продавец КАК Продавец, Таблица.Партнер КАК Партнер, Таблица.ЗаказКлиента КАК ЗаказКлиента, Таблица.Подразделение КАК Подразделение, Таблица.Склад КАК Склад, Таблица.Контрагент КАК Контрагент, Таблица.Покупатель КАК Покупатель, Таблица.Поставщик КАК Поставщик, Таблица.Менеджер КАК Менеджер, Таблица.Сделка КАК Сделка, Таблица.Сделка.Ответственный КАК МенеджерСделки, Таблица.ВидЗапасов КАК ВидЗапасов, Таблица.Регистратор, Таблица.День, Таблица.Неделя, Таблица.Декада, Таблица.Месяц, Таблица.Квартал, Таблица.Полугодие, Таблица.Год, СУММА(Таблица.ВНаличииОстаток) КАК Остаток ИЗ (ВЫБРАТЬ ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)) КАК Сделка, АналитикаНоменклатуры.Номенклатура КАК Номенклатура, АналитикаНоменклатуры.Характеристика КАК Характеристика, АналитикаПоПартнерам.Организация КАК Организация, АналитикаПоПартнерам.Организация КАК Продавец, АналитикаПоПартнерам.Партнер КАК Партнер, Продажи.ВидЗапасов КАК ВидЗапасов, Продажи.ВидЗапасов.Поставщик КАК Поставщик, ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО) КАК Менеджер, Продажи.Регистратор КАК Регистратор, ВЫБОР КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента ТОГДА Продажи.ЗаказКлиента ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК ЗаказКлиента, Продажи.Подразделение КАК Подразделение, АналитикаНоменклатуры.Склад КАК Склад, ВЫБОР КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты ТОГДА АналитикаПоПартнерам.Контрагент ИНАЧЕ NULL КОНЕЦ КАК Контрагент, ВЫБОР КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации ТОГДА АналитикаПоПартнерам.Контрагент ИНАЧЕ NULL КОНЕЦ КАК Покупатель, Продажи.КоличествоОборот КАК Количество, Продажи.СуммаВыручкиОборот КАК Выручка, ВЫБОР КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА Продажи.СуммаВыручкиОборот КОГДА ЕСТЬNULL(РасчетСебестоимости.ПредварительныйРасчет, ЛОЖЬ) ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Стоимость, 0) КАК ЧИСЛО(15, 2)) ИНАЧЕ Продажи.СебестоимостьОборот КОНЕЦ КАК Себестоимость, ВЫБОР КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА 0 КОГДА ЕСТЬNULL(РасчетСебестоимости.ПредварительныйРасчет, ЛОЖЬ) ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходы, 0) КАК ЧИСЛО(15, 2)) ИНАЧЕ Продажи.СуммаДополнительныхРасходовОборот КОНЕЦ КАК ДопРасходы, Продажи.ПериодДень КАК День, Продажи.ПериодНеделя КАК Неделя, Продажи.ПериодДекада КАК Декада, Продажи.ПериодМесяц КАК Месяц, Продажи.ПериодКвартал КАК Квартал, Продажи.ПериодПолугодие КАК Полугодие, Продажи.ПериодГод КАК Год, ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток {ВЫБРАТЬ Регистратор, День, Неделя, Декада, Месяц, Квартал, Полугодие, Год} ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты({(&НачалоПериода)}, {(&ОкончаниеПериода)}, Авто, ) КАК Продажи {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры ПО Продажи.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики} {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам ПО Продажи.АналитикаУчетаПоПартнерам = АналитикаПоПартнерам.КлючАналитики} {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры И (АналитикаПоПартнерам.Организация = СтоимостьНоменклатуры.Организация) И Продажи.ВидЗапасов = СтоимостьНоменклатуры.ВидЗапасов И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))} ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСебестоимостиТоваров КАК РасчетСебестоимости ПО (НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ) = НАЧАЛОПЕРИОДА(РасчетСебестоимости.Дата, МЕСЯЦ)) И (АналитикаПоПартнерам.Организация = РасчетСебестоимости.Организация) И (РасчетСебестоимости.Проведен) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристика ГДЕ (&ПоказыватьПродажи = 1 И АналитикаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) ИЛИ &ПоказыватьПродажи = 2 И АналитикаПоПартнерам.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) ИЛИ &ПоказыватьПродажи = 0) {ГДЕ АналитикаНоменклатуры.Номенклатура.* КАК Номенклатура, АналитикаНоменклатуры.Характеристика.* КАК Характеристика, АналитикаПоПартнерам.Организация.* КАК Организация, АналитикаПоПартнерам.Партнер.* КАК Партнер, АналитикаНоменклатуры.Склад.* КАК Склад, АналитикаПоПартнерам.Контрагент.* КАК Контрагент, (ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))).* КАК Сделка}) КАК Таблица СГРУППИРОВАТЬ ПО Таблица.Сделка, Таблица.Номенклатура, Таблица.Характеристика, Таблица.Организация, Таблица.Продавец, Таблица.Партнер, Таблица.Регистратор, Таблица.День, Таблица.Неделя, Таблица.Декада, Таблица.Месяц, Таблица.Квартал, Таблица.Полугодие, Таблица.Год, Таблица.ЗаказКлиента, Таблица.Подразделение, Таблица.Склад, Таблица.Контрагент, Таблица.Покупатель, Таблица.Поставщик, Таблица.Менеджер, Таблица.ВидЗапасов, Таблица.Сделка.Ответственный ИМЕЮЩИЕ (СУММА(Таблица.Количество) <> 0 ИЛИ СУММА(Таблица.Выручка) <> 0 ИЛИ СУММА(Таблица.Себестоимость) <> 0 ИЛИ СУММА(Таблица.ДопРасходы) <> 0)
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Какой параметр передаете в ПЗ ?
-
Никакой, а какой параметр
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристикаругается 1с у меня на вот этот участок кода
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
А в запросе у вас параметр стоит &ПЗ, вот его и нужно заполнить.
-
А чем его заполнить, я туда никакого параметра не передаю
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Параметры заполняются так:
Запрос.УстановитьПараметр("ПЗ", ВашПараметр);
Ваш параметр — это то что нужно передать. В виртуальной таблице остатков, обычно первым параметром идет дата среза, на которую необходимо получить остаток.
Вы откуда этот код слизали ? -
я просто соединяю таблицу продажи с остатками по полямВ УТ11 отчет ВыручкаИСебестоимостьПродаж
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Тогда либо уберите этот параметр, либо заполняйте его.
-
не стоит вот фрагмент
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристика
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
У вас отчет отваливается с ошибкой:
Вы видите что у вас в виртуальной таблице стоит параметр ????????????? -
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
просто кажется ошибка и код запроса немного не вяжутся
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Ну походу ТС вообще не осознает что делает)
-
Offline
Максим
Опытный в 1С- Регистрация:
- 28 фев 2008
- Сообщения:
- 731
- Симпатии:
- 8
- Баллы:
- 29
))))))))))))))))))))))))))))))))))))
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Ну я ни в коем случае не хотел задеть или обидеть этого человека, так что извиняюсь заранее.
-
Доброго Всем,
Этот запрос для построителя
если написать «ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ОкончаниеПериода)» то построитель будет брать параметр из формы, где отображается выбор периода, на отображение выбора периода влияет гл.переменная «УниверсальныйОтчет.мРежимВводаПериода», внизу текста модуля есть описание.
Для того чтобы добавить колонку нужно немного переписать не только запрос, в процедуре «УстановитьНачальныеНастройки», но и ту часть котороя идет после него —
«УниверсальныйОтчет.ДобавитьПоказатель(…»
согласно описанию в самой процедуреВ самом запросе в секции выбора полей построителя (начинается с фигурных скобок), так же нужно указать поля которые хотите показать
Тамика Котовчанин 942 / 482 / 200 Регистрация: 16.02.2010 Сообщений: 3,338 Записей в блоге: 37 |
||||
1 |
||||
1C 8.x Ошибка при формировании отчета.24.05.2016, 14:10. Показов 5993. Ответов 9 Метки нет (Все метки)
Всем привет. Опять беда с отчётом. И вроде ошибка такая явная, но не могу понять где она… Что с этим можно сделать?
0 |
3051 / 1998 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
|
24.05.2016, 14:25 |
2 |
Тамика, а что у вас за тип параметра П? 1 |
Котовчанин 942 / 482 / 200 Регистрация: 16.02.2010 Сообщений: 3,338 Записей в блоге: 37 |
|
24.05.2016, 14:43 [ТС] |
3 |
GreenkA, пересоздала отчёт — ошибка исчезла, теперь отчёт просто ничего не выводит… Сделала всё по учебнику, и не работает. 0 |
3051 / 1998 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
|
24.05.2016, 17:10 |
4 |
Тамика, выложите отчет или базу/конфу. 1 |
Котовчанин 942 / 482 / 200 Регистрация: 16.02.2010 Сообщений: 3,338 Записей в блоге: 37 |
|
25.05.2016, 11:17 [ТС] |
5 |
0 |
Котовчанин 942 / 482 / 200 Регистрация: 16.02.2010 Сообщений: 3,338 Записей в блоге: 37 |
|
25.05.2016, 11:19 [ТС] |
6 |
Совсем запуталась с этими отчётами. Делаю все по учебнику — не получается. Хотела сделать панель параметров над самими отчётом — опять же сделала по учебниу: Что я не так понимаю?( 0 |
3051 / 1998 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
|
25.05.2016, 14:11 |
7 |
Тамика, не знаю, что у вас за учебник такой, где прописано, что надо отдельно выносить параметры СКД на форму… Почему отчет пустой: у вас на вкладке Отбор включен отбор по проекту и контрагенту… при этом значения сравнения пустые. Уберите галочки с отбора и включите в пользовательские настройки, как описано выше, при желании пользователь сам включит отбор и выставит значение отбора. 1 |
1 / 1 / 0 Регистрация: 29.08.2014 Сообщений: 245 |
|
25.05.2016, 14:20 |
8 |
Ошибка поле СуммаОстаток Тамика, . У вас там в Наименование поле в регистре ВзаиморасчетыПо Проектам просто Сумма а не СуммаОстаток 0 |
Котовчанин 942 / 482 / 200 Регистрация: 16.02.2010 Сообщений: 3,338 Записей в блоге: 37 |
|
25.05.2016, 16:15 [ТС] |
9 |
mikkijon, смотря где. Если я беру из виртуальной таблицы Остатки, то будет СуммаОстаток, а не Сумма. 0 |
1 / 1 / 0 Регистрация: 29.08.2014 Сообщений: 245 |
|
26.05.2016, 12:37 |
10 |
Тамика, Да но СКД опирается на реальные наименование полей 0 |
-
В конфигурации УТ11 есть типовой отчет по валовой прибыли, так вот нужно добавить туда колонку остаток номенклатуры, ну что то не могу победить запрос выдает ошибку
Ошибка обработки представления "РегистрНакопления.ТоварыНаСкладах.Остатки:Несоответствие типов (Параметр номер ""1"")" ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрНакопления.ТоварыНаСкладах.Остатки(&П3) КАК ТоварыНаСкладахОстатки
вот код запроса
ВЫБРАТЬ РАЗРЕШЕННЫЕ СУММА(Таблица.Количество) КАК Количество, СУММА(Таблица.Выручка) КАК Выручка, СУММА(Таблица.Себестоимость) КАК Себестоимость, СУММА(Таблица.ДопРасходы) КАК ДопРасходы, СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы) КАК ВаловаяПрибыль, ВЫРАЗИТЬ(ВЫБОР КОГДА СУММА(Таблица.Выручка) <> 0 ТОГДА (СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы)) / СУММА(Таблица.Выручка) ИНАЧЕ 0 КОНЕЦ * 100 КАК ЧИСЛО(15, 2)) КАК Рентабельность, ВЫБОР КОГДА Таблица.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ПродажиМеждуОрганизациями, Таблица.Номенклатура КАК Номенклатура, Таблица.Характеристика КАК Характеристика, Таблица.Организация КАК Организация, Таблица.Продавец КАК Продавец, Таблица.Партнер КАК Партнер, Таблица.ЗаказКлиента КАК ЗаказКлиента, Таблица.Подразделение КАК Подразделение, Таблица.Склад КАК Склад, Таблица.Контрагент КАК Контрагент, Таблица.Покупатель КАК Покупатель, Таблица.Поставщик КАК Поставщик, Таблица.Менеджер КАК Менеджер, Таблица.Сделка КАК Сделка, Таблица.Сделка.Ответственный КАК МенеджерСделки, Таблица.ВидЗапасов КАК ВидЗапасов, Таблица.Регистратор, Таблица.День, Таблица.Неделя, Таблица.Декада, Таблица.Месяц, Таблица.Квартал, Таблица.Полугодие, Таблица.Год, СУММА(Таблица.ВНаличииОстаток) КАК Остаток ИЗ (ВЫБРАТЬ ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)) КАК Сделка, АналитикаНоменклатуры.Номенклатура КАК Номенклатура, АналитикаНоменклатуры.Характеристика КАК Характеристика, АналитикаПоПартнерам.Организация КАК Организация, АналитикаПоПартнерам.Организация КАК Продавец, АналитикаПоПартнерам.Партнер КАК Партнер, Продажи.ВидЗапасов КАК ВидЗапасов, Продажи.ВидЗапасов.Поставщик КАК Поставщик, ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО) КАК Менеджер, Продажи.Регистратор КАК Регистратор, ВЫБОР КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента ТОГДА Продажи.ЗаказКлиента ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК ЗаказКлиента, Продажи.Подразделение КАК Подразделение, АналитикаНоменклатуры.Склад КАК Склад, ВЫБОР КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты ТОГДА АналитикаПоПартнерам.Контрагент ИНАЧЕ NULL КОНЕЦ КАК Контрагент, ВЫБОР КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации ТОГДА АналитикаПоПартнерам.Контрагент ИНАЧЕ NULL КОНЕЦ КАК Покупатель, Продажи.КоличествоОборот КАК Количество, Продажи.СуммаВыручкиОборот КАК Выручка, ВЫБОР КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА Продажи.СуммаВыручкиОборот КОГДА ЕСТЬNULL(РасчетСебестоимости.ПредварительныйРасчет, ЛОЖЬ) ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Стоимость, 0) КАК ЧИСЛО(15, 2)) ИНАЧЕ Продажи.СебестоимостьОборот КОНЕЦ КАК Себестоимость, ВЫБОР КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА 0 КОГДА ЕСТЬNULL(РасчетСебестоимости.ПредварительныйРасчет, ЛОЖЬ) ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходы, 0) КАК ЧИСЛО(15, 2)) ИНАЧЕ Продажи.СуммаДополнительныхРасходовОборот КОНЕЦ КАК ДопРасходы, Продажи.ПериодДень КАК День, Продажи.ПериодНеделя КАК Неделя, Продажи.ПериодДекада КАК Декада, Продажи.ПериодМесяц КАК Месяц, Продажи.ПериодКвартал КАК Квартал, Продажи.ПериодПолугодие КАК Полугодие, Продажи.ПериодГод КАК Год, ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток {ВЫБРАТЬ Регистратор, День, Неделя, Декада, Месяц, Квартал, Полугодие, Год} ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты({(&НачалоПериода)}, {(&ОкончаниеПериода)}, Авто, ) КАК Продажи {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры ПО Продажи.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики} {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам ПО Продажи.АналитикаУчетаПоПартнерам = АналитикаПоПартнерам.КлючАналитики} {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры И (АналитикаПоПартнерам.Организация = СтоимостьНоменклатуры.Организация) И Продажи.ВидЗапасов = СтоимостьНоменклатуры.ВидЗапасов И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))} ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСебестоимостиТоваров КАК РасчетСебестоимости ПО (НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ) = НАЧАЛОПЕРИОДА(РасчетСебестоимости.Дата, МЕСЯЦ)) И (АналитикаПоПартнерам.Организация = РасчетСебестоимости.Организация) И (РасчетСебестоимости.Проведен) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристика ГДЕ (&ПоказыватьПродажи = 1 И АналитикаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) ИЛИ &ПоказыватьПродажи = 2 И АналитикаПоПартнерам.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) ИЛИ &ПоказыватьПродажи = 0) {ГДЕ АналитикаНоменклатуры.Номенклатура.* КАК Номенклатура, АналитикаНоменклатуры.Характеристика.* КАК Характеристика, АналитикаПоПартнерам.Организация.* КАК Организация, АналитикаПоПартнерам.Партнер.* КАК Партнер, АналитикаНоменклатуры.Склад.* КАК Склад, АналитикаПоПартнерам.Контрагент.* КАК Контрагент, (ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))).* КАК Сделка}) КАК Таблица СГРУППИРОВАТЬ ПО Таблица.Сделка, Таблица.Номенклатура, Таблица.Характеристика, Таблица.Организация, Таблица.Продавец, Таблица.Партнер, Таблица.Регистратор, Таблица.День, Таблица.Неделя, Таблица.Декада, Таблица.Месяц, Таблица.Квартал, Таблица.Полугодие, Таблица.Год, Таблица.ЗаказКлиента, Таблица.Подразделение, Таблица.Склад, Таблица.Контрагент, Таблица.Покупатель, Таблица.Поставщик, Таблица.Менеджер, Таблица.ВидЗапасов, Таблица.Сделка.Ответственный ИМЕЮЩИЕ (СУММА(Таблица.Количество) <> 0 ИЛИ СУММА(Таблица.Выручка) <> 0 ИЛИ СУММА(Таблица.Себестоимость) <> 0 ИЛИ СУММА(Таблица.ДопРасходы) <> 0)
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Какой параметр передаете в ПЗ ?
-
Никакой, а какой параметр
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристикаругается 1с у меня на вот этот участок кода
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
А в запросе у вас параметр стоит &ПЗ, вот его и нужно заполнить.
-
А чем его заполнить, я туда никакого параметра не передаю
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Параметры заполняются так:
Запрос.УстановитьПараметр("ПЗ", ВашПараметр);
Ваш параметр — это то что нужно передать. В виртуальной таблице остатков, обычно первым параметром идет дата среза, на которую необходимо получить остаток.
Вы откуда этот код слизали ? -
я просто соединяю таблицу продажи с остатками по полямВ УТ11 отчет ВыручкаИСебестоимостьПродаж
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Тогда либо уберите этот параметр, либо заполняйте его.
-
не стоит вот фрагмент
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристика
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
У вас отчет отваливается с ошибкой:
Вы видите что у вас в виртуальной таблице стоит параметр ????????????? -
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
просто кажется ошибка и код запроса немного не вяжутся
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Ну походу ТС вообще не осознает что делает)
-
Offline
Максим
Опытный в 1С- Регистрация:
- 28 фев 2008
- Сообщения:
- 731
- Симпатии:
- 8
- Баллы:
- 29
))))))))))))))))))))))))))))))))))))
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
Ну я ни в коем случае не хотел задеть или обидеть этого человека, так что извиняюсь заранее.
-
Доброго Всем,
Этот запрос для построителя
если написать «ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ОкончаниеПериода)» то построитель будет брать параметр из формы, где отображается выбор периода, на отображение выбора периода влияет гл.переменная «УниверсальныйОтчет.мРежимВводаПериода», внизу текста модуля есть описание.
Для того чтобы добавить колонку нужно немного переписать не только запрос, в процедуре «УстановитьНачальныеНастройки», но и ту часть котороя идет после него —
«УниверсальныйОтчет.ДобавитьПоказатель(…»
согласно описанию в самой процедуреВ самом запросе в секции выбора полей построителя (начинается с фигурных скобок), так же нужно указать поля которые хотите показать
Если указывать по ссылки или моменту времени, то выходит ошибка
Цитата
Текст запроса: Строка 6: {(6,2)}: Ошибка обработки представления «РегистрНакопления.ОстаткиГрузовПоМестамХранения.Остатки:Несоответствие типов (Параметр номер «»1″»)»
<<?>>РегистрНакопления.ОстаткиГрузовПоМестамХранения.Остатки(&Граница, ) КАК ОстаткиГрузовПоМестамХраненияОстатки
Из кода подобная конструкция работает.