1с 8 тип документа в запросе. Как в запросе получить Вид (тип) Документа? Левое и правое соединение

25.10.2019 Программы

Работает неправильно» самостоятельно. Они знают свой компьютер до мельчайших деталей, поэтому вопросов о том, как исправить ту или иную ошибку, не возникает. А вот неопытным пользователям в этом вопросе в разы труднее. Некоторым не помогают даже советы из Интернета, поскольку знаний и опыта слишком мало.

Проблема

Но это не беда. Любую базовую ошибку ПК можно устранить быстро. Для этого нужно внимательно изучать инструкции и выполнять пошагово советы от специалистов.

Сегодняшняя проблема - когда одно из работает неправильно. Чаще всего вы заметите этот текст в правом нижнем углу рабочего стола. Иногда появляется специальное окно с уведомлением об этой проблеме.

Предпосылки

Чаще всего ошибка возникает при подключении любого устройство через USB. Это и обычная флешка, и телефон, и принтер и пр. Проблема возникает как на ранней версии Windows 7, так и на поздней - «Десятке». При этом ваше USB может быть версии 2.0 или 2.0. В целом суть вопроса от этого не меняется.

Причины

Ошибка, сопровождаемая подключением USB, может быть вызвана рядом причин. Их и правда, очень много. Причем не всегда они типичные. Бывает, что вина лежит прямиком и полностью на пользователе, который чудом удалил драйверы или сбил систему с толку. Есть и огрехи со стороны производителей этих устройств. Некачественные китайские флешки особенно подвержены этой проблеме.

Доверяй, но проверяй

Итак, вы увидели подобную ошибку у себя на экране. Во избежание лишних нервов и траты кучи времени, лучше сразу проверить то устройство, которое вы подключаете к порту. Как уже говорилось ранее, не все производители такие добросовестные. Многие создают продукт для того, чтобы просто продать. Отсюда возникают системные ошибки.

Если вы купили новую мышь, клавиатуру или флеш-накопитель, сразу проверьте именно его исправность, прежде чем грешить на интерфейс USB. Для этого можно использовать два способа:

  1. Если у вас есть второй ПК или ноутбук, просто подключите новый девайс к нему. Если в другой системе все будет нормально, то, скорее всего, проблема именно в компьютере.
  2. Возьмите исправное устройство (старая мышь, вторая флешка и т. д.) и вставьте его в этот же порт. Если появляется такое же уведомление, то дело действительно в разъеме.

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

Теперь включаем ПК и подключаем USB-устройство, когда система прогрузится полностью. Вариант не самый лучший, но иногда после него действительно начинает все работать.

И для тех, кто окончательно хочет убедиться в неисправности порта, можно просто отключить все USB, которые есть на интерфейсной панели. Бывает, что перегруз портов может выдавать подобную ошибку. Если вы отключите ненужное на данный момент оборудование, флешку установите в заднюю панель.

Программные способы

Иногда проблему «Одно из подключенных USB устройств работает неправильно» одними рокировками не исправить. Придется покопаться внутри системы. Если все предыдущие способы не дали вам результата, попробуем обновить «дрова».

Для этого ищем «Диспетчер устройств». Делаем через командную строку: зажимаем на клавиатуре Win+R и вводим в поле devmgmt.msc. Можно зайти в «Мой компьютер», кликнуть правой кнопкой мыши на любое место в окне и выбрать «Свойства». Перед нами откроется окно с параметрами ПК, и в левом столбике вы найдете нужный раздел.

Итак, в «Диспетчере устройств» выбираем строку «Контроллеры USB», здесь показаны все USB оборудование, подключенное к системе. Здесь будет строка «Другие устройства», именно в ней и будет находиться наш неизвестный девайс. Кликаем по его имени и пробуем «Обновить драйверы». Ждем, пока система сама загрузит через Интернет необходимые файлы, и, возможно, флешка «придет в себя» и заработает.

Восклицательный знак

Может быть такое, что возле этого «Неизвестного устройства» стоит желтый знак восклицания. В этом случае пробуем откатить драйверы. Кликаем по нему и заходим в «Свойства». Тут нужно найти вкладку с «дровами» и кнопку «Откатить». Возможно, она будет недоступна для вас, подсвечиваться серым цветом. Тогда выбираем «Удалить».

Теперь нужно вернуться в окно «Диспетчер устройств» и сверху выбрать раздел «Действие», а в нем обновить конфигурацию оборудования. Эти шаги могут исправить вашу проблему.

Восклицательный знак может появляться и по другой причине. Для этого нужно перейти в свойства оборудований, которые обзавелись именами типа Generic USB Hub, USB Root Controller и Корневой USB-концентратор. В появившемся окне нужно выбрать «Управление электропитанием» и на первой строке убрать галочку. Так вы запретите оборудованию отключаться для экономии электричества.

Распространенные ошибки и решения

Как уже упоминалось ранее, ошибка «Одно из подключенных USB-устройств работает неправильно» индивидуальная и зависит от многих факторов. Выше мы рассмотрели наиболее распространенные причины. А теперь кратко попробуем описать, с какими неисправностями сталкивались другие пользователи.

Часто эта ошибка возникает при подключении принтера. Обычно вызвано некорректной установкой «дров». Поэтому можно просто удалить их и внимательно переустановить заново.

Много проблем возникает из-за механических повреждений. Предположим, кабель с разъемом micro-USB с одной стороны, и с USB - с другой может посередине быть переломан или передавлен. Это также значительно влияет на работоспособность и синхронизацию его с ПК.

Еще одной интересной проблемой, которая сейчас встречается все реже и реже, может быть несовместимость. Некоторые устройства не поддерживают стандарт 2.0 или более новый 3.0. Тогда случается, что подключая через USB телефон или любой другой девайс, вы снова увидите это сообщение. Вообще, если такая проблема возникла, то лучше задуматься о смене материнской платы, так как стандарт интерфейса будет и дальше меняться, а проблем станет еще больше.

Проблемы ноутбука

В этом случае мы сталкиваемся с проблемами подключения USB 3.0. Из-за несовершенства этой ревизии интерфейса, пользователям приходится выкручиваться разными способами. Было найдено решение. В ноутбуке необходимо было отрегулировать план электропитания.

Для этого можно было зайти в стандартные настройки этого параметра либо в фирменный софт, который предоставляют некоторые производители ноутов. В Windows выбираем тот план электропитания, который сейчас используется, далее переходим в дополнительные параметры. И уже по знакомой схеме запрещаем отключение портов для экономии энергии.

Выводы

Если вдруг вы не можете подключить через USB телефон, внешний жесткий диск, флешку и другие девайсы, сразу расстраиваться не нужно. Во-первых, поломка одного порта из десяти в системе - это дело обычное. Попробовать просто использовать другой разъем - проще простого. Во-вторых, даже если в программном плане у вас ничего не получилось, можно попробовать переустановить Windows.

Конечно, переустановка ОС - это не панацея от всех проблем и процесс довольно тяжелый, особенно для тех, кто ни разу с ним не сталкивался. Тем не менее даже он может помочь вам.

Возможно, ваш разъем micro-USB не работает по причине реальной поломки контроллера. Его заменить на материнской плате не получится. Это либо покупать новую материнку, либо, как вариант, приобрести внешний контроллер с интерфейсом PCI.

"драйвер") может взаимодействовать:

  • непосредственно с моделью фискального регистратора ;
  • с программным обеспечением (АРМ), поставляемым вместе с фискальным регистратором;
  • с драйвером фискального регистратора низкого уровня, написанным по технологии OLE for POS (OPOS).

Общие требования к драйверу:

Драйвер должен:

  • быть разработан в виде внешней компоненты (описание механизма создания внешних компонент приведено в документе " Документация по технологии создания внешних компонент " на диске ИТС в разделе " Технология создания внешних компонент " Методической поддержки 1C:Предприятия 8.1.);
  • обеспечить возможность реализации функционала в полном объеме для подключаемого вида оборудования
  • предоставлять набор свойств и методов для настройки и управления драйвером в соответствии с опубликованными на диске ИТС в разделе " Работа с торговым оборудованием " Методической поддержки 1С:Предприятия 8.1 требованиями к виду представленного на сертификацию оборудования
  • предоставлять русскоязычные и англоязычные названия свойств и методов (например, П орт- Port , Скорость - Speed ,ЗакрытьЧек() - CloseCheck() , НапечататьФискСтроку() - PrintFiscalString() и др.);
  • поддерживать множественные подключения (в соответствии с идеологией COM-технологии), а также поддерживать работу с несколькими устройствами, если позволяют бизнес-процессы, в которых используется данное оборудование;
  • при возникновении ошибки в работе предоставлять подробное описание произошедшей ошибки, позволяющее пользователю понять причину возникновения ошибки и способ ее устранения;
  • при возникновении внештатных ситуаций (некорректные действия пользователя , отсутствие запрашиваемого метода или функции, передача некорректных значений и др.) корректно обрабатывать их. Не должно быть аварийных завершений работы драйвера и прочих некорректных действий драйвера, которые могут привести к нарушению нормальной работы пользователя .

Описание работы с драйвером

Начало работы с драйвером

Система 1С:Предприятие (в дальнейшем "система") инициализирует соединение с драйвером и загружает его. Далее устанавливаются конфигурационные параметры, необходимые для работы. Подключение к устройству выполняется при начале операции с устройством торгового оборудования.

Внесение/выемка суммы

Печать фискального/нефискального чека

Система посылает команду на открытие нового чека. В зависимости от переданного параметра чек открывается в фискальном или нефискальном режиме. Если чек уже открыт, то, в зависимости от значения переданного параметра "АннулироватьОткрытыйЧек", драйвер аннулирует (отменяет) предыдущий чек или возвращает ошибку, что чек уже был открыт.

"Печать строки"

По окончании печати происходит закрытие чека. Если открывался фискальный чек, то при закрытии происходит печать итогов и суммы оплаты и чек отрезается. Если открывался нефискальный, то происходит просто отрез чека. Отрез чека производится при условии, что данная операция поддерживается принтером, в противном случае достаточно протянуть ленту на несколько строк с тем, чтобы чек находился над линией отрыва.

Печать отчета за кассовую смену с гашением (Z- отчет) и без гашения (X -отчет)

Завершение работы

Отключение от устройства выполняется при окончании операции с устройством.

Соединение с драйвером закрывается только при завершении работы системы.

Описание свойств

Описание методов

Описание методов

Название (alias)

Параметры

Описание

Описание

ПолучитьНомерВерсии (GetVersion ) - - - BSTR Возвращает номер версии драйвера
ПолучитьОшибку(GetLastError) ОписаниеОшибки
(ErrorDescription)
BSTR Описание ошибки LONG Возвращает код и описание последней произошедшей ошибки
Подключить (Open ) МассивЗначений
(Valuesarray)

IDispatch*

BOOL Подключает фискальный регистратор
ИДУстройства (DeviceID ) BSTR Идентификатор устройства
Отключить (Close ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Отключает фискальный регистратор
НапечататьОтчетБезГашения (PrintXReport ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Печатает на ФР отчет за смену без гашения (не закрывает кассовую смену)
НапечататьОтчетСГашением (PrintZReport ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Печатает на ФР отчет за смену с гашением (закрывает кассовую смену, )
НапечататьЧекВнесенияВыемки (CashInOutcome ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Печатает на ФР чек внесения/ выемки (зависит от переданной суммы). Сумма >= 0 - внесение, Сумма < 0 - выемка.
Сумма (amount ) DOUBLE Сумма внесения/выемки
ОткрытьЧек (OpenCheck ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Открывает новый чек
ФискальныйЧек (IsFiscalCheck) BOOL Признак фискального чека
ЧекВозврата (IsReturnCheck) BOOL Признакчека возврата
АннулироватьОткрытыйЧек (CancelOpenedCheck ) BOOL Признак автоматического аннулирования ранее открытого чека
НомерЧека (CheckNumber) LONG Номер нового чека
НомерСмены (SessionNumber) LONG Номер открытой смены
НапечататьФискСтроку (PrintFiscalString ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Печатает строку товарной позиции с переданными реквизитами. Скидки/наценки по строке рассчитываются по формуле "Сумма - Цена*Количество". Если полученное значение отличное от 0, то в чеке печатается абсолютная (денежная) скидка(<0 )/наценка(>0) .
Наименование (Name) BSTR Наименование товара
Количество (Quantity) DOUBLE Количество товара
Цена (Price) DOUBLE Цена единицы товара (в формате < Рубли> ,< Копейки> )
Сумма (amount ) DOUBLE Конечная сумма по позиции чека (с учетом всех скидок/наценок; в формате < Рубли> ,< Копейки> )
Отдел (Department) LONG Отдел, по которому ведется продажа
НДС (Tax) DOUBLE НДС в процентах (от 0 до 99,99)
ЗакрытьЧек (CloseCheck ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Закрывает чек
НаличнаяОплата (Cash) DOUBLE Сумма наличной оплаты
ОплатаКартой (PayByCard ) DOUBLE Сумма оплаты картой
ОплатаКредитом (PayByCredit ) DOUBLE Сумма оплаты кредитом
ОтменитьЧек (CancelCheck ) ИДУстройства (DeviceID ) BSTR Идентификатор устройства BOOL Отменяет ранее открытый чек (требует административные привилегии )
НапечататьНефискСтроку (PrintNonFiscalString ) ИДУстройства (DeviceID ) BSTR BOOL Выводит произвольную строку на чековую ленту
СтрокаТекста (TextString) BSTR Строка с произвольным текстом
ОткрытьДенежныйЯщик (OpenCashDrawer) ИДУстройства(DeviceID) BSTR Логический номер устройства, к которому подключен денежный ящик BOOL

Производит открытие денежного ящика, подключенного к фискальному регистратору.

ТестУстройства (DeviceTest) МассивЗначений
(Valuesarray)

IDispatch*

Массив значений для настройки подключения

BOOL

Выполняет пробное подключение и опрос устройства. При успешном выполнении подключения в описании возвращается описание устройства. При отрицательном результате возвращается описание возникшей проблемы при подключении.
ДополнительноеОписание (additionalDescription )

BSTR

Описание результата выполнения теста

Дополнительное описание :
"МассивЗначений " (пример значений для устройства, подключаемого на последовательном порту)
Тип данных "1С:Предприятия 8" - Массив.

Наименование параметра Наличие в структуре Типы данных Описание параметра
Порт (Port ) Обязательно LONG Номер последовательного порта (1 соответствует порту COM1 ). свойство.
Скорость (Speed ) Необязательно LONG Скорость последовательного порта, на которой подключается устройство (передается непосредственно значение 9600, 19200, 57600, 115200 и т.д.).
ПарольПользователя (UserPassword ) Обязательно BSTR Пароль обычного доступа к ФР (предназначен для работы с чеками продажи и внесения/выемки).
ПарольАдминистратора (adminPassword) Обязательно BSTR Пароль администратора (применяется там, где требуются повышенные привилегии, административные, расширяющие пользовательские права). При выполнений функций, требующих административные привилегии, "ПарольАдминистратора" сравнивается с заданным в ФР и в случае не совпадения функция прерывает выполнение и возвращает ошибку.
Таймаут (Timeout ) Обязательно LONG Время, в течение которого компонента должна ожидать ответа от устройства при выполнении операций.
РегистрационныйНомерККМ (RegNumber ) Обязательно BSTR В свойстве хранится регистрационный номер ККМ (только на чтение, заполняется при подключении к ФР)
СерийНомерККМ (SerialNumber) Обязательно BSTR В свойстве хранится серийный номер ККМ (только на чтение,заполняется при подключении к ФР)
ТекстОплатыКартой (PayByCardText ) Необязательно BSTR В свойстве передается текст, используемый для печати в чеке и описывающий тип оплаты "Картой"
ТекстОплатыКредитом (PayByCreditText) Необязательно BSTR В свойстве передается текст, используемый для печати в чеке и описывающий тип оплаты "Кредитом"

Нас находят: При подключении устройства произошла ошибка Смена не открыта на фискальном регистраторе Дополнительное описание: Выбранное устройство не может использоваться для подключения Укажите другое устройство , при подключении устройства произошла ошибка смена не открыта на фискальном регистраторе , чек не напечатан на фискальном регистраторе, смена не открыта на фискальном регистраторе, при подключении устройства произошла ошибка FFFFFFFFh нет связи (999), Выбранное устройство не может использоваться для подключения, ШТРИХ-LIGHT-ФР-К: FFFFFFFEh СOM порт недоступен, При подключении устройства произошла ошибка Чек не напечатан на фискальном регистраторе Дополнительное описание: Выбранное устройство не может использоваться для подключения Укажите другое устройство, при печати чека произошла ошибка чек не напечатан на фискальном, пароль доступа фискального регистратора FP-300 к 1с 8


Остальные рассмотрим сейчас.

Функции работы со строками в запросах 1С

Функций и операторов для работы со строковыми данными в запросах 1С немного.

Во-первых, строки в запросах можно складывать. Для этого используется оператор «+»:

Запрос. Текст= "ВЫБРАТЬ
" "Строка: " " + Источник.Наименование
;

Во-вторых, можно выделить часть строки. Для этого используется функция ПОДСТРОКА. Функция аналогична встроенного языка 1С. У нее три параметра:

  1. Строка-источник.
  2. Номер символа, с которого должна начинаться выделяемая строка.
  3. Количество символов.

Запрос. Текст= "ВЫБРАТЬ
ПОДСТРОКА("
"Строка: " ", 4, 3) КАК Результат" ; // Результат: ока

Функция ЕСТЬNULL

NULL — особый тип данных на платформе 1С:Предприятие. Он же является единственным возможным значением этого типа. NULL может возникать в запросах в нескольких случаях: при соединениях источников запроса, если не было найдено соответствующего значения в одной из таблиц; при обращении к реквизитам несуществующего объекта; если NULL был указан в списке полей запроса (например при объединении результатов выборки из нескольких таблиц) и т.д.

Поскольку NULL не является ни нулем, ни пустой строкой, ни даже значением Неопределено, его часто бывает полезно заменять на какой-то более полезный тип данных. Для этого и предназначена функция ЕСТЬNULL.

Она имеет два параметра:

  1. Проверяемое значение.
  2. Значение, на которое нужно заменить первый параметр, если он оказался равен NULL.

Запрос. Текст= "ВЫБРАТЬ
ЕСТЬNULL(Источник.Остаток, 0) КАК Остаток"
; // Если в результате запроса поле остаток=NULL,
// то оно заменится на 0, и с ним можно будет выполнять математические действия

Функции ПРЕДСТАВЛЕНИЕ и ПРЕДСТАВЛЕНИЕССЫЛКИ

Эти функции предназначены для получения строковых представлений различных значений. То есть, они преобразуют ссылки, числа, булево и т.д. в обычный текст. Разница между ними в том, что функция ПРЕДСТАВЛЕНИЕ преобразует в текст (строку) любые типы данных, а функция ПРЕДСТАВЛЕНИЕССЫЛКИ — только ссылки, а остальные значения возвращает как есть, не преобразованными.

Запрос. Текст= "ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ (ИСТИНА) КАК Булево,
ПРЕДСТАВЛЕНИЕ (4) КАК Число,
ПРЕДСТАВЛЕНИЕ (Источник.Ссылка) КАК Ссылка,
ПРЕДСТАВЛЕНИЕ(ДАТАВРЕМЯ(2016,10,07)) КАК Дата"
;
// Булево = "Да", Число = "4", Ссылка = "Документ Расходный кассовый ордер №... от..."
// Дата="07.10.2016 0:00:00"

Запрос. Текст= "ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕССЫЛКИ (ИСТИНА) КАК Булево,
ПРЕДСТАВЛЕНИЕССЫЛКИ (4) КАК Число,
ПРЕДСТАВЛЕНИЕССЫЛКИ (Источник.Ссылка) КАК Ссылка,
ПРЕДСТАВЛЕНИЕССЫЛКИ (ДАТАВРЕМЯ(2016,10,07)) КАК Дата"
;
// Булево = ИСТИНА, Число = 4, Ссылка = "Документ Расходный кассовый ордер №... от..."
// Дата=07.10.2016 0:00:00

Функции ТИП и ТИПЗНАЧЕНИЯ

Функция ТИП возвращает тип данных платформы 1С:Предприятие.

Запрос. Текст= "ВЫБРАТЬ
ТИП (Число) ,
ТИП (Строка),
ТИП (Документ.РасходныйКассовыйОрдер)"
;

Функция ТИПЗНАЧЕНИЯ возвращает тип переданного в нее значения.

Запрос. Текст= "ВЫБРАТЬ
ТИПЗНАЧЕНИЯ (5) КАК Число,
ТИП ("
"Строчка" ") КАК Строка,
ТИП (Источник.Ссылка) КАК Справочник
Из Справочник.Источник КАК Источник"
;
//Число=Число, Строка=Строка, Справочник = СправочникСсылка.Источник

Эти функции удобно применять, например, когда нужно выяснить является ли полученное в запросе поле значением какого-то типа. Например, получим контактную информацию контрагентов из регистра сведений КонтактнаяИнформация (там хранятся контакты не только контрагентов, но и организаций, физических лиц и т.д.):

Запрос. Текст= "ВЫБРАТЬ

ИЗ

ГДЕ
ТИПЗНАЧЕНИЯ(КонтактнаяИнформация.Объект) = ТИП(Справочник.Контрагенты)"
;

Функция ЗНАЧЕНИЕ

Функция Значение позволяет использовать в запросе объекты конфигурации 1С напрямую, без применения .

Дополним предыдущий пример еще одним условием. Необходимо получить только телефоны контрагентов.

Запрос. Текст= "ВЫБРАТЬ
КонтактнаяИнформация.Представление
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
ТИПЗНАЧЕНИЯ(КонтактнаяИнформация.Объект) = ТИП(Справочник.Контрагенты)
И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)"
;

Следует отметить, что эту функцию можно использовать только с предопределенными значениями, т.е. со значениями, к которым можно обратиться напрямую из конфигуратора. То есть функция ЗНАЧЕНИЕ не можно использоваться с элементами справочников, созданными пользователями, но может работать с перечислениями, с предопределенными элементами справочников, со значениями ПустаяСсылка .

Оператор ССЫЛКА

Оператор ССЫЛКА предназначен для проверки значений, получаемых запросом, на принадлежность к определенному ссылочному типу. Эту же задачу можно выполнить с помощью функций ТИП и ТИПЗНАЧЕНИЯ (которые имеют более широкую область применения и были рассмотрены выше).

Например, задачу выбора контактной информации контрагентов можно было решить и так:

Запрос. Текст= "ВЫБРАТЬ
КонтактнаяИнформация.Представление
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
КонтактнаяИнформация.Объект ССЫЛКА Справочник.Контрагенты"
;

Оператор ВЫРАЗИТЬ

Оператор ВЫРАЗИТЬ используется в запросах 1С в двух случаях:

  • когда нужно изменить характеристики примитивного типа;
  • когда нужно из поля с составным типом данных сделать поле с одиночным типом.

К примитивным типам данных относятся: число, строка, дата, булево. Некоторые из этих типов данных имеют дополнительные характеристики. Тип Число имеет длину и точность, тип Строка — длину или неограниченность.

Оператор ВЫРАЗИТЬ позволяет изменять не тип данных, а именно дополнительные характеристики. Например, он может из строки с неограниченной длиной сделать строку с длиной ограниченной. Это бывает полезно, если нужно сгруппировать результаты запроса по такому полю. Выполнять группировку по полям с неограниченной длиной нельзя, поэтому мы его преобразуем в строку с длиной 200 символов.

Запрос. Текст= "ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПоступлениеТоваровУслуг.Ссылка) КАК Ссылка
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
СГРУППИРОВАТЬ ПО
ВЫРАЗИТЬ(ПоступлениеТоваровУслуг.Комментарий КАК СТРОКА(200))"
;

В ряде случаев, запросы к полям с составным типом данных могут обрабатываться платформой 1С неоптимально. Это приводит к увеличению времени выполнения запросов, поэтому бывает полезно заранее преобразовать составной тип в одиночный.

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

Операторы ВЫБОР и ЕСТЬ NULL

Оператор ВЫБОР аналогичен оператору ЕСЛИ во встроенном языке 1С, но имеет несколько урезанный функционал.

Допустим мы хотим получить контактные данные из регистра сведений КонтактнаяИнформация и при этом в отдельном поле запроса указать, принадлежат ли они контрагенту или физическому лицу.

Запрос. Текст= "ВЫБРАТЬ
КонтактнаяИнформация.Представление,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(КонтактнаяИнформация.Объект) = ТИП(Справочник.Контрагенты)
ТОГДА "
Контрагент"
ИНАЧЕ ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(КонтактнаяИнформация.Объект) = ТИП(Справочник.ФизическиеЛица)
ТОГДА "
ФизЛицо"
ИНАЧЕ " Кто- то другой"
КОНЕЦ
КОНЕЦ КАК Владелец
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация"
;

Как видно из примера, в конструкции ВЫБОР всегда присутствует условие после слова КОГДА; значение, применяемое, если условие выполняется, после слова ТОГДА и значение, применяемое, если условие не выполняется, после слова ИНАЧЕ. Все три элемента конструкции ВЫБОР являются обязательными. Опустить элемент ИНАЧЕ , так же, как это делается при использовании оператора ЕСЛИ во встроенном языке 1С, нельзя. Также у оператора ВЫБОР отсутствует аналог конструкции ИНАЧЕЕСЛИ , зато можно вложить один ВЫБОР в другой, как и было сделано в нашем примере.

Оператор ЕСТЬ NULL используется в конструкции ВЫБОР для сравнения поля запроса с типом NULL.

Запрос. Текст= "ВЫБРАТЬ
ВЫБОР
КОГДА Значение ЕСТЬ NULL ТОГДА 0
ИНАЧЕ Значение
КОНЕЦ"
;

Кроме того, оператор ЕСТЬ NULL можно использовать в условиях запроса, например в предложении ГДЕ.

В этой статье разберем возможности приведения типов в языке запросов 1С, которые предоставляет функция «Выразить».
Рассмотрим несколько вариантов применения этой функции.
И первый вариант – округление чисел.

Для этого необходимо использовать функцию Выразить в следующем формате:

Выразить(<Число> как Число(<ДлинаЧисла>,<Точность>))

Где:
Число — поле, параметр которое нужно округлить
ДлинаЧисла максимальная длина числа
Точность — точность округления числа

Параметры и длинна и точность должны быть целыми положительными числами.
Посмотрите, как работает эта функция на рисунке ниже.

Второй вариант применения – приведение строк. Очень часто в конфигурациях используются строки неограниченной длинны, что накладывает некоторые ограничения. Например, мы не можем сравнивать строки неограниченной длины.
В запросе, который приведен ниже, поле ПолноеНаименование имеет тип строка неограниченной длины, и этот запрос не будет работать.

Для того что бы он работал, необходим поле неограниченной длины привести в строку с определенной длинной, делается это при помощи функции Выразить в следующем формате:

Выразить(<Строка> как Строка(<ДлинаСтроки>)

Где
ДлинаСтроки – максимальная длина, к которой будет приведена строка.
Переделаем запрос: будем в условии приводить неограниченную строку к строке с определенной длинной. Тогда ни каких ошибок не будет.

Рассмотрим последний и, я бы сказал, самый главный вариант её применения: при работе с полями составного типа.
Ниже приведены два запроса, в которых используются поля составного типа. Первый неправильный, а второй правильный.

Т.е. когда вам нужно получить поле какого-нибудь составного типа, то всегда получайте значение этого поля только после приведения типа при помощи функции Выразить. В этом случае для документов и справочников будет следующий формат:

Выразить(<Документ> как Документ.<ИмяТаблицы>)
Выразить(<Справочник> как Справочник.< ИмяТаблицы >)
.

Где
ИмяТаблицы — название объекта в .

Всегда используйте функцию выразить, когда работаете с составными типами, это существенно оптимизирует запрос.

Если Вы всё еще «плаваете» в конструкциях языка запросов, и у Вас вызывают трудности даже самые простые запросы, то рекомендую вам мой курс «Запросы в 1С от новичка до профи» . Где эти и многие другие вопросы рассматриваются более подробно.

В чем особенность этого курса:
Курс рассчитан на тех, кто не знаком с языком запросов в 1С;
Учебный материал грамотно скомпонован и прост в освоении;
Несколько десятков уроков;
Полезные практические примеры;
Все уроки изложены понятным и простым языком

Для моих читателей, купон на скидку 25%: hrW0rl9Nnx

Я стараюсь как можно чаще выпускать различные интересные бесплатные статьи и видеоуроки. Поэтому буду очень рад, если Вы поддержите мой проект перечислив любую сумму:

Можете перечислить любую сумму напрямую:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы.

1С позволяет значительно упростить ведение бухгалтерии или просто управление любой организацией, будь то маленький магазинчик или крупное предприятие. Программа представляет собой крупную систему по управлению базами данных . Чтобы не запутаться во всём этом, необходимо уметь выполнять различные простейшие действия и понимать суть. Далее вы поймёте, как в 1С проверить тип значения в запросе, а также какие они, вообще, бывают, а также как их различать.

Типы значений

1С: Предприятие включило в новые версии специальную функцию (платформа 8.2). С помощью неё можно к любым наименованиям, элементам системы данных добавлять какие-либо особые параметры. Сделано это для того, чтобы систему было легче редактировать и добавлять туда новые элементы. Функция эта как раз и называется «Тип значения».

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

Проверка

Проверить то или иное поле можно при помощи языка запросов. А точнее его функции: ТИПЗНАЧЕНИЯ. То есть, если мы хотим узнать, информацию какого вида содержит интересующая ячейка, мы должны воспользоваться командой.

ТИПЗНАЧЕНИЯ(Значение) = ТИП(Строка)

На примере выше мы определили, воспользовавшись командой, простейший вид. Другой пример проверки запроса:

Документы

Самих видов довольно много, пользователи могут обходиться как начальными, так и вводить свои, чтобы совершенствовать информационную базу. Вот некоторые из них.

  • ДокументСсылка. Применяется для удобного хранения ссылок на различные объекты внутри других частей системы.
  • ДокументОбъект - редактирование документов.
  • ДокументВыборка - переборка объектов из базы данных.

Кроме того, есть специальные термины, характеризующие любые данные:

  • форма;
  • строка;
  • булево;
  • число;
  • дата;
  • массив;
  • флажок;
  • картинка.

Это лишь часть из них. Любой объект может являться только чем-то из этого списка. Булево - специальный параметр, который принимает два значения: правда или ложь. Также есть специальные теги, позволяющие корректировать запрос: когда, где, как, иначе и т. п. Они задают алгоритм поведения программы. 1С отличает то, что эти слова здесь, как и всё остальное, можно вписывать на русском языке.

Важно понимать, что все это будет восприниматься новичками и непрофессионалами как китайская грамота. Чтобы понимать, о чём идёт речь и эффективно использовать 1С, необходимо знать основы программирования. В целом, проверить тип в запросе в программе 1С будет достаточно легко, в сравнении с другими действиями.