Проверка типа ссылки в запросах 1С: Предприятия 8 - Программирование, 1С - Каталог статей - Околокомпьютерный сайт Д.К.
 Воскресенье, 20.05.2012. 16:16 | RSS
 Приветствуем Вас, Гость! Регистрация | Вход с параметрами

Меню сайта
Категории каталога
Обзоры оборудования [35]
Обзоры различного оборудования, побывавшего в руках автора сайта: ноутбуки, винчестеры, мониторы, материнские платы, видеокарты и др.
Тестирование [7]
Отчасти перекликается с обзорами оборудования, однако здесь сделан упор именно на тестирование в каких-либо бенчмарках
Практика апгрейда [7]
Статьи, посвященные вопросам апгрейда компьютера. Примеры конфигураций, оценка стоимости
Решение проблем [5]
Рассматриваются различные мелкие и не очень проблемы и их возможные варианты решения
Обзоры софта [6]
Обзоры программного обеспечения: антивирусы, браузеры, утилиты и др.
Игры [26]
Обзоры игр, советы по прохождению
Программирование, 1С [12]
Освещаются вопросы по программированию, в немалой степени - на платформе 1С: Предприятия
Цифровое фото, видео [5]
Выделенный раздел, посвященным цифровым фотоаппаратам и видеокамерам
Подписка

Подпишитесь на уведомления о новых статьях по e-mail:

Предоставлено FeedBurner

Параллельные проекты
Друзья сайта
Статистика

Rambler's Top100 Рейтинг@Mail.ru SpyLOG
Околокомпьютерный сайт Дмитрия Косолапова
Пользовательский поиск
Главная » Статьи » Программирование, 1С

Проверка типа ссылки в запросах 1С: Предприятия 8

Очередная краткая заметка по не вполне очевидному оператору языка запросов 1С: Предприятия 8.

Данную проблему я предлагаю рассмотреть на примере построения запроса в рамках типовой конфигурации "Управление торговлей", редакция 10.2. Собственно, передо мной встала задача - получить количество списанного товара. Имеется в виду, товар списывается именно документом "Списание товара". При изучении движений этого документа выяснилось, что он, помимо всего прочего, выполняет расход по регистру ТоварыНаСкладах. С другой стороны, в качестве регистраторов движений по этому регистру выступает большое количество различных документов, следовательно, в запросе нужно отобрать только те регистраторы, тип которых - документ списания товаров. Ну и еще одно примечание - воспользоваться виртуальной таблицей, к сожалению, не получится, так как в ней не предусмотрены средства отбора по регистратору.

Итак, как же проверить тип ссылки в запросе? Первоначально мои мысли заработали в направлении функции ПОДСТРОКА, и я написал конструкцию вида ГДЕ ПОДСТРОКА(ТоварыНаСкладах.Регистратор.Представление, 1, 8) = "Списание". Разумеется, такая конструкция конструктору запросов крайне не понравилась, и это и к лучшему (так как иначе эта статья бы не появилась smile). Оказалось, что для решения поставленной задачи нужно применять оператор ССЫЛКА, то есть, условие будет выглядеть так: ГДЕ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.СписаниеТоваров, т.е. оператор проверяет, является ли значение выражения, указанного слева от него, ссылкой на таблицу, указанной справа (кстати в документации почему-то наоборот написано. Ошибка rolleyes). Таким образом, наш запрос будет выглядеть так:

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

СГРУППИРОВАТЬ ПО
  ТоварыНаСкладах.Номенклатура

В запрос необходимо будет передать два параметра (начало и конец периода). Условие по виду движения, очевидно, не нужно, так как "маловероятно" wink, что документ списания будет делать приход biggrin

Категория: Программирование, 1С | Добавил: Vetkhy (07.06.2009) | Автор: Дмитрий Косолапов | Просмотров: 11958

Метки: ссылка, 1С: Предприятие 8, Проверка, , запросы

Всего комментариев: 10
0  
1 Егор   (23.10.2009 09:25)
спасибо! Мне надо было не списание, а оприходывание поменял слово и все!:)

0  
2 Vetkhy   (23.10.2009 11:00)
О как хорошо все получилось! smile Рад, что моя заметка помогла!

0  
3 mangy   (11.05.2010 17:58)
Спасибо, добрый человек. Сэкономил кучу времени и сил. Побольше бы таких людей.

0  
4 Olga   (24.05.2010 08:59)
И от меня спасибо!

0  
5 Dinozavr   (02.07.2010 10:03)
И мне помогло, спасибо. Статья отлично ищется в google.

0  
6 Вован   (09.09.2010 02:46)
Да помогла, спасибо

0  
7 ZolteR   (13.09.2010 14:56)
А вот у меня параметр &Контрагент составной (Склады или контрагенты) и почему при выборе одного из них в поле ввода выдает ошибку на другое
Если Склады:
&Контрагент ССЫЛКА Справочник.Контрагенты
Если Контрагенты:
&Контрагент ССЫЛКА Справочник.Склады

0  
8 Vetkhy   (14.09.2010 09:13)
На первый взгляд, нужно определять тип значения поля до вызова запроса и, соответственно, использовать разные запросы.

Если честно, не понял вопрос. Желательно задачу полностью поставить.


0  
9 mike_a   (02.03.2011 17:41)
вот помнил же что как-то это делалось :)
Яндексом кстати тоже ищется хорошо
спасибо

0  
10 Vetkhy   (03.03.2011 09:52)
Пожалуйста smile Рад, что помог вспомнить smile И с Яндексом вроде хорошие у нас отношения, да smile

Имя *:
Email:
Код *:
Сайт управляется системой uCozДмитрий Косолапов © 2007-2012