Как узнать кто изменил документ в 1С (Журнал регистрации действий пользователей)? В процессе работы предприятия нередко возникает необходимость узнать кто, когда и что именно изменял в документе или справочнике программы.
Очень часто мне задают вопросы:
- Как в 1С 8.2 посмотреть поменявшего документ?
- Как в 1с посмотреть изменившего документ?
- Как в 1С узнать кто и когда изменял документы?
- Как в 1С узнать кто изменил проводку в документе?
- Как посмотреть кто изменял документ в 1с?
Журнал регистрации
Содержит информацию о том, какие события происходили в информационной базе в определенный момент времени или какие действия выполнял тот или иной пользователь. Для каждой записи журнала, отражающей изменение данных, отображается статус завершения транзакции (транзакция завершена успешно, или же транзакция отменена).
Журнал регистрации доступен как в режиме 1С:Предприятие, так и в режиме Конфигуратор.
Доступ к журналу регистрации возможен как из режима Конфигуратора (через меню Администрирование - Журнал регистрации), так и из режима Предприятия (меню Сервис - Журнал регистрации). В режиме Такси (Основное меню - Все функции - Стандартные - Журнал регистрации)
Вид журнала регистрации (Обычные формы и Такси):
Отбор в журнале регистрации (Обычные формы и Такси):
Используя средства работы со списками имеется возможность выгрузить журнал регистрации в табличный или, при необходимости, текстовый документ (через Действия - Вывести список) , который в дальнейшем может быть сохранен например в формате Excel , TXT или HTML. При этом существует возможность настройки уровня событий, которые будут фиксироваться в журнале регистрации, а также периодичности разделения журнала на отдельные файлы (в режиме конфигуратора меню Администрирование - Настройка журнала регистрации).
И там же есть возможность сократить количество записей данного журнала до определенной даты, что делается для ускорения работы с механизмом анализа и регистрации событий в системе или за ненадобностью неактуальной информации.
Где хранится журнал регистрации
В Файловой базе: в каталоге базы папка 1Cv8Log - это и есть директория содержащая журнал регистрации.
Если вы планируете перенести файловую базу данных и хотите сохранить историю журнала регистрации & вам обязательно надо скопировать папку 1Cv8Log в категорию новой базы 1С. Если необходимо очистить журнал регистрации 1С в файловой базе просто удалите папку 1Cv8Log.
В Клиент-серверной базе: C:\Program Files\1cv8\srvinfo\<Имя кластера сервера>\<Идентификатор базы на сервере>\1Cv8Log
С версии 8.3.5.1068. Значительно переработали журнал регистрации для того, чтобы увеличить скорость выполнения запросов к журналу и повысить надёжность хранения данных.
Для этого, в том числе, потребовалось изменить формат хранения журнала регистрации. Теперь он хранится в одном файле базы данных SQLite. Этот файл имеет расширение lgd.
Версионирование объектов
В некоторых конфигурациях 1С внедрен специальный механизм «Версионирование объектов».
По умолчанию версионирование выключено, чтобы включить откройте Сервис - Настройки учета - Настройка параметров учета
По кнопке «Настройка версионирования объектов» выбираем, какие справочники и документы нужно версионировать (наблюдать за тем, кто, что и когда изменил).
По умолчанию наблюдение за объектами информационной базы не ведется, поетому напротив каждого типа документов установлен признак «Не версионировать». Если нужно чтоб наблюдение велось, нужно установить «Версионировать» напротив интересующего журнала документов.
Все, при закрытии окна и нажатии на кнопку «Оk» наблюдение за объектами будет вестись.
Для того чтоб просмотреть все изменения которые кто-то делал в документе или справочнике нужно перейти в меню: Сервис - История изменений объектов
Категория:
Администрирование
Как включить интерфейс такси в 1С В этом видео уроке вы узнаете, как включить интерфейс Такси в 1С Бухгалтерия 8 предприятие.
Такая возможность появилась, начиная с релиза 3.0.33.15, который вышел 30.05.2014. В видео оговорка: не не 30 июня, а 30 мая. Но даже, если у пользователя стоит уже более свежий релиз, он, скорее всего, ни какого интерфейса такси в 1С Бухгалтерия не заметит. Его необходимо включить. Смотрите, как включить в 1С интерфейс такси.
В этом видео уроке рассмотрен тот вариант такси, который настроен в программе по умолчанию. В следующем видео уроке мы научимся изменять его структуру под свои задачи и вкусы. Наверное, назову его так: Переставляем шашечки в 1С интерфейсе такси».
Автор: Владимир Ильюков.
А теперь немного расскажем как включить Такси через конфигуратор:
Итак, заходим в конфигуратор и разблокируем конфигурацию (“Включить возможность изменения” в пункте меню “Настройка поддержки”:
Далее в дереве объектов конфигурации двойным кликом вызываем “Свойства” конфигурации и в пункте “Режим совместимости” выбираем “Такси”:
После этого необходимо сохранить и обновить конфигурацию, система предложит обновить объекты, соглашаемся. По окончанию процедуры обновления, пробуем заходить в конфигурацию:
Категория:
1С Общие вопросы - Управляемые формы и Такс…
Полезные сведения о языке запросов 1С 8.х В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для кого-то могут быть полезны.
Итак, начнем. Запрос - это специальный объект в 1С 8.2, который используется для формирования и выполнения запросов к таблицам базы данных в системе. Для выполнения запроса необходимо составить текст запроса, в котором описывается какие таблицы будут использоваться в качестве источников данных запроса, какие нужно выбрать поля, какие применить сортировки и группировки и т.д. Подробнее о запросах можно прочитать в книге "1С 8.2 Руководстве разработчика". Язык запросов 1С 8.2 очень похож синтаксисом на другие SQL языки запросов баз данных, но есть и отличия. Из основных преимуществ встроенного языка запросов стоит отметить разыменование полей, наличие виртуальных таблиц, удобная работа с итогами и нетипизированные поля в запросах. Из недостатков – в качестве выходного поля нельзя использовать запрос, нельзя использовать хранимые процедуры, нельзя преобразовать строку в число.
Приведу сведения и рекомендации по языку запросов по пунктам:
1.Для повышения читабельности запроса и уменьшения количества параметров запроса можно в запросе применять обращение к предопределенным данным конфигурации с помощью литерала ЗНАЧЕНИЕ (ПРЕДСТАВЛЕНИЕЗНАЧЕНИЯ). В качестве представления значений могут использоваться значение перечислений, предопределенные данные справочников, планов видов расчета, планов видов характеристик, планов счетов, пустые ссылки, значения точек маршрута, значения системных перечислений (например, ВидДвиженияНакопления, ВидСчета).
Примеры:
ГДЕ Город = ЗНАЧЕНИЕ(Справочник.Города.Москва)
ГДЕ Город = ЗНАЧЕНИЕ(Справочник.Города.ПустаяСсылка)
ГДЕ ТипТовара = ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Услуга)
ГДЕ ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ГДЕ ТочкаМаршрута =
ЗНАЧЕНИЕ(БизнесПроцесс.Согласование.ТочкаМаршрута.Согласие)
Выражение в скобках всегда начинается со слова в единственном числе (Справочник, Перечисление и т.д.), которое соответствует типу предопределенного значения.
2.Автоупорядочивание в запросе может сильно тормозить процесс. Если сортировка не нужна, лучше вообще ее не использовать. Во многих случаях эффективнее записать сортировку через ключевое слово УПОРЯДОЧИТЬ ПО.
3.Нужно следить, чтобы при использовании псевдонимов не появилось неоднозначное поле. Иначе система не поймет к какому объекту надо обращаться.
Пример запроса с неоднозначным полем:
ВЫБРАТЬ
Номенклатура.Ссылка,
ОстаткиТоваровОстатки.КоличествоОстаток
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки
ПО ОстаткиТоваровОстатки.Номенклатура = Номенклатура.Ссылка
Нужно исправить псевдоним таблицы, например, так: «Справочник.Номенклатура КАК Номенклатура1», а «Номенклатура.Ссылка» соответственно исправить на «Номенклатура1.Ссылка».
4.Иногда полезно получать представление ссылочных полей с помощью ключевого слова ПРЕДСТАВЛЕНИЕ наряду со ссылкой для того, чтобы не было повторного обращения к базе данных. Это бывает полезно при выводе результата запроса в таблицу.
Пример:
ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ(Документ.Контрагент) КАК Получатель,
ПРЕДСТАВЛЕНИЕ(Документ.Основание)
ИЗ
Документ.РасходнаяНакладная КАК Документ
5.Использование в запросе ВЫРАЗИТЬ(Поле КАК Тип) позволяет убрать лишние таблицы из соединения с полем составного типа данных. Тем самым ускорить выполнение запроса.
Пример (регистратор - поле с составным типом для физической таблицы регистранакопления ОстаткиТоваров, в запросе выбираются Дата и Номер документов ПоступлениеТоваров, при этом при обращении к реквизитам документа Дата и Номер через Регистратор не происходит множественного соединения таблицы регистра с таблицами документов, являющихся регистраторами для регистра ОстаткиТоваров):
ВЫБРАТЬ РАЗЛИЧНЫЕ [b] ВЫРАЗИТЬ(ОстаткиТоваров.Регистратор КАК Документ.ПоступлениеТоваров).Номер КАК НОМЕРПОСТУПЛЕНИЯ,[/b]
[b]ВЫРАЗИТЬ(ОстаткиТоваров.Регистратор КАК Документ.ПоступлениеТоваров).Дата КАК ДАТАПОСТУПЛЕНИЯ[/b]
[b]ИЗ РегистрНакопления.ОстаткиТоваров КАК ОстаткиТоваров ГДЕ (ВЫРАЗИТЬ(ОстаткиТоваров.Регистратор КАК Документ.ПоступлениеТоваров) ЕСТЬ НЕ NULL)[/b]
6.Когда в конфигурации 1С есть пользователи, у которых права ограничены на определенные объекты конфигурации, в запросе к таким объектам необходимо использовать ключевое слово РАЗРЕШЕННЫЕ, чтобы запрос выполнился без ошибки (Выбрать Разрешенные ...)
7.При объединении таблиц, содержащих вложенные таблицы (например, Документ с табличной частью) бывает полезно ключевое слово ПУСТАЯТАБЛИЦА, когда, например, в одном из документов нет табличной части.
Пример:
ВЫБРАТЬ Ссылка.Номер, ПУСТАЯТАБЛИЦА.(Ном, Тов, Кол) КАК Состав
ИЗ Документ.РасходнаяНакладная
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Ссылка.Номер, Состав.(НомерСтроки, Номенклатура, Количество)
ИЗ Документ.РасходнаяНакладная
8.При работе с соединениями таблиц, содержащих по одной строке, бывает нужно склеить строки таблиц (при этом в обеих таблицах нет такого поля, по которому их можно было соединить). Этого можно добиться, применив конструкцию «ПОЛНОЕ СОЕДИНЕНИЕ Таблица По ИСТИНА». Если в таблицах больше, чем одна строка, то в результате будет количество строк, равное произведению количества строк обеих таблиц. Если в одной таблице О строк, то в результирующей таблице количество строк будет равно количеству строк второй таблицы. Также для соединения таких таблиц можно применять декартово произведение таблиц , при котором в результирующей таблице будут встречаться все комбинации строк из обеих таблиц. Надо помнить, что если в одной из таблиц 0 строк, тогда и декартово произведение будет 0, поэтому полное соединение будет лучше. Вообще вместо полного соединения ПО ИСТИНА можно использовать и любой другой тип соединения, но в таком случае тоже возможна ситуация, когда в результирующей таблице будет 0 строк, даже если в одной из таблиц будет ненулевое количество строк. В случае полного соединения такая ситуация будет только в одном случае, если количество строк в обеих таблицах равно 0. Если знать, что в таблице есть точно хотя бы одна строка, тогда можно использовать и ЛЕВОЕ СОЕДИНЕНИЕ с другой таблицей с условием ПО ИСТИНА.
Пример (правда надуманный, для Полного соединения):
ВЫБРАТЬ
Первые 1
Пол.Ссылка,
К.Контрагент
ИЗ
Перечисление.Пол КАК Пол
ПОЛНОЕ СОЕДИНЕНИЕ (Выбрать Первые 1 Д.Контрагент ИЗ Документ.РеализацияТоваров КАК Д Упорядочить По Д.МоментВремени ) КАК К
ПО (ИСТИНА)
9. Для того чтобы получить уникальные записи по какому-то полю, правильней вместо группировки пользоваться ключевым словом РАЗЛИЧНЫЕ в запросе, потому что такая конструкция намного наглядней и ключевое слово СГРУППИРОВАТЬ ПО имеет более широкое применение и часто используется, если дополнительно надо рассчитать агрегатные функции по группировкам. В некоторых случаях необходимо вывести ограниченное количество строк. Для этого в описании запроса в описании запроса следует указать ключевое слово ПЕРВЫЕ и после него – требуемое количество строк.
Пример для ПЕРВЫЕ:
Выбрать Первые 5
Справочник.Номенклатура.Наименование,
Справочник.Номенклатура.ЗакупочнаяЦена
Упорядочить По
Справочник.Номенклатура.ЗакупочнаяЦена Убыв
Пример для РАЗЛИЧНЫЕ:
Выбрать Различные
Документ.Расходная.Контрагент
10.Агрегатные функции в запросе можно использовать без ключевого слова СГРУППИРОВАТЬ. В таком случае все результаты будут сгруппированы в одну строку.
Пример:
Выбрать
Сумма(Накладная.Сумма) Как Сумма
Из
Документ.РасходнаяНакладная.Состав Как Накладная
11.В запросах в полях выборки можно свободно обращаться к реквизитам полей выборки. Эта возможность называется разыменованием полей выборки. Если источник данных - вложенная таблица (табличная часть документа), то в полях выборки можно обращаться также к полям основной таблицы (например, через поле Ссылка обратиться к полю основной таблицы Контрагент)
Пример:
ВЫБРАТЬ [b] ПоступлениеТоваровИУслугТовары.Номенклатура, ПоступлениеТоваровИУслугТовары.Номенклатура.Код, ПоступлениеТоваровИУслугТовары.Количество КАК Количество, ПоступлениеТоваровИУслугТовары.Ссылка.Контрагент ИЗ Документ.ПоступлениеТоваровИУслуг.Товары КАК ПоступлениеТоваровИУслугТовары ГДЕ ПоступлениеТоваровИУслугТовары.Ссылка = &Ссылка[/b]
Есть одна особенность использования разыменования полей, если в запросе есть группировки. В любых запросах с группировками в списках полей запроса можно свободно обращаться к реквизитам группировочных полей.
Пример:
ВЫБРАТЬ
ПоступлениеТоваровИУслугТовары.Номенклатура,
ПоступлениеТоваровИУслугТовары.Номенклатура.Код,
СУММА(ПоступлениеТоваровИУслугТовары.Количество) КАК Количество,
ПоступлениеТоваровИУслугТовары.Ссылка.Контрагент,
ПоступлениеТоваровИУслугТовары.Ссылка.Дата
ИЗ
Документ.ПоступлениеТоваровИУслуг.Товары КАК ПоступлениеТоваровИУслугТовары
ГДЕ
ПоступлениеТоваровИУслугТовары.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровИУслугТовары.Номенклатура,
ПоступлениеТоваровИУслугТовары.Ссылка
В справке 1С написано, что при наличии группировки, в полях выборки запроса могут участвовать только группировочные поля и агрегатные функции по полям выборки. Есть один исключительный случай, когда агрегатные функции применены к полям вложенной таблицы. В этом случае в списке полей выборки возможны обращения к полям таблицы верхнего уровня, без группировки результатов по этим полям.
Пример:
ВЫБРАТЬ
ПоступлениеТоваровИУслуг.Товары.(СУММА(Количество),Номенклатура),
ПоступлениеТоваровИУслуг.Ссылка,
ПоступлениеТоваровИУслуг.Контрагент
ИЗ
Документ.ПоступлениеТоваровИУслуг КАК ПоступлениеТоваровИУслуг
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровИУслуг.Товары.(Номенклатура)
12. Иногда вместо указания какого-либо поля в группировке полезно в поля выборки запроса включить параметр:
ВЫБРАТЬ ДокТовары.Номенклатура, &Контрагент, &Период, СУММА(ДокТовары.Количество * ДокТовары.К) КАК Количество, СУММА(ДокТовары.Сумма) КАК Сумма ИЗ Документ.Приходная.Товары КАК ДокТовары ГДЕ ДокТовары.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО ДокТовары.Номенклатура
А затем установить параметр в тексте запроса:
Запрос.УстановитьПараметр(«&Контрагент», ВыбКонтрагент);
Запрос.УстановитьПараметр(«&Период», Дата);
13. В универсальных запросах параметры можно использовать в описании источников данных запроса, в условиях ГДЕ, в условиях соединения таблиц и параметрах виртуальных таблиц. Существует два приема для создания универсальных запросов:
А) с помощью механизма конкатенации строк, добавляя в текст запроса переменные;
Пример1:
ТипУпорядочивания = ?(НЕКАЯПЕРЕМЕННАЯ,"","УБЫВ");
Запрос.Текст= "Выбрать ... Упорядочить ПО Поле1 " + ТипУпорядочивания + "...";
Пример2:
Запрос.Текст = "Выбрать Поле1...";
Если НЕКАЯПЕРЕМЕННАЯ = 1 Тогда
Запрос.Текст = Запрос.Текст + ",Поле2 ...";
КонецЕсли;
Б)использовать параметры в различных частях запроса (например, в секции источников данных запроса), а затем метод встроенного языка - СТРЗАМЕНИТЬ(). При проектировании универсальных запросов полезно обращение к свойству объектов МЕТАДАННЫЕ(), с помощью которого можно определить название таблицы для какой-то ссылки (например, для документа будет примерно так - Ссылка.МЕТАДАННЫЕ().ИМЯ), переданной через параметр в некую универсальную процедуру.
Пример:
Выбрать
ДокТЧ.Номенклатура,
...
ИЗ
&НекийДокТЧ КАК ДокТЧ
А затем установить параметр в тексте запроса
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&НекийДокТЧ", "Документ."+Ссылка.Метаданные().Имя+".Товары");
Параметры можно использовать в условиях запроса, чтобы включить опциональное условие &Параметр ИЛИ НЕ КакоеТоСвойство:
Запрос.УстановитьПараметр(“&Параметр”, “Контрагент.Наименование=””Иванов”””);
С помощью литерала ИСТИНА можно убирать определенные фильтры в запросе
Запрос.УстановитьПараметр(«&Параметр»,Истина);
14.Очень полезными в конструкторе запросов является команда контекстного меню таблицы - "Переименовать таблицу...", с помощью которого можно придумать некоторое обобщенное имя для источника данных. Для создания запросов к однотипным таблицам, похожим по структуре, бывает полезным для второй таблицы скопировать текст запроса первой таблицы, зайти в окно конструктора запросов и в контекстном меню таблицы выбрать пункт - Заменить таблицу... и выбрать вторую талицу.
15.При работе с созданием вложенных запросов в секциях условий или параметров виртуальных таблиц конструктора запросов используется прием выделения пробела в скобках, тогда появляется в контекстном меню пункт «Конструктор запроса», а при редактировании вложенного запроса в условии выделяют весь запрос в скобках .
Пример вложенного запроса:
Товар В ( Выбрать Номенклатура ...)
16. При проектировании отчетов СКД в запросах к регистрам остатков - в качестве параметра Период удобнее и правильнее использовать выражение ДобавитьКДате(КонецПериода(Период,ДЕНЬ),СЕКУДА,1), так как остатки в виртуальных получаются на начало периода, не включая последнюю секунду. Прием +1 секунда не может быть применен с документами: по новой методике проведения документов остатки по регистру надо получать на Период, заданный объектом Граница с моментом времени документа включая (а не на дату документа +1 секунда!), а по старой методике проведения - на момент времени документа (а не на дату документа !). При анализе оборотов или данных за период удобно добавлять параметр с типом СтандартныйПериод (в этом случае не надо приводить последнюю дату интервала на конец дня). У стандартного поля «НачалоПериода» в поле «Выражение» надо прописать «&Период.ДатаНачала». А у стандартного поля «КонецПериода» в поле «Выражение» прописать «&Период.ДатаОкончания». Очень много полезной информации по языку запросов можно найти не в синтакс-помощнике, а в полной справке конфигуратора 1С 8.2 (кнопка F1)
17.Функция запроса ЕстьNull (удобнее писать англоязычный вариант IsNull) обычно используется для избавления от значений типа Null для числовых полей запроса. В ряде случаев, например полного соединения двух таблиц функция IsNull (Параметр1,Параметр2) может с успехом заменить конструкцию ВЫБОР КОГДА ... ТОГДА ..ИНАЧЕ ….КОНЕЦ, когда для какого-либо поля значения NULL могут быть как в первой таблице, так и во второй (такая конструкция позволяет получать не Null значение для поля). Но надо помнить, что в отличие от условного оператора ВЫБОР функция ЕстьNull приводит тип второго аргумента к типу первого аргумента, что нужно учитывать, если типы аргументов отличаются!
Пример:
IsNull(Рег.Остаток,0)
IsNull(Док.Товар,Док1.Номенклатура)
18. У условной конструкции ВЫБОР есть альтернативный синтаксис для простого случая проверки равенства определенному значению, но, правда, он недокументированный:
Выбор Выражение Когда 1 Тогда «Высший» Когда 2 Тогда «Средний» Иначе «Низший» Конец
19.Оператор проверки значения на NULL Eсть Null (Можно рекомендовать использовать англоязычный вариант Is Null). Такая конструкция появилась потому, что любая операция сравнения двух величин, хотя бы одно из которых Null, всегда ложь. Написать Где Наименование = Null неправильно. Интересна также форма отрицания данного оператора Не Есть Null - неправильно, а правильно Есть Не Null или форма Не (Поле1 Есть Null) - это существенное отличие от всех операторов, использующихся совместно с оператором Не.
20. Иногда полезна форма оператора В для проверки совпадения с одним из перечисленных значений.
Пример:
...Где Товар.Наименование В ("Бытовая техника","Компьютеры")
Для справочников может быть полезна форма оператора В проверки принадлежности по иерархии.
Пример:
...Где Номенклатура В ИЕРАРХИИ (&Группа)
Оператор В часто используется для проверки вхождения значения в результат вложенного запроса.
Пример:
...Где Номенклатура.Ссылка В (Выбрать Номенклатура.Ссылка ...).
Во вложенном запросе можно обращаться к полям внешнего запроса в условии.
Пример:
// Выбрать названия товаров, которые присутствовали
// в расходных накладных
ВЫБРАТЬ
Товары.Наименование
ИЗ
Справочник.Номенклатура КАК Товары
ГДЕ
Товары.Ссылка В
(ВЫБРАТЬ
РасходнаяНакладнаяСостав.Номенклатура
ИЗ
Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав
ГДЕ
РасходнаяНакладнаяСостав.Номенклатура = Товары.Ссылка)
Операция В может использоваться с массивами, списками значений, таблицами значений, вложенными запросами. При этом возможно сокращение условий
Синтаксис для вложенного запроса
(выражение1, выражение2,...,выражениеN) В (Выбрать выражение1, выражение2,...,выражениеN ...)
Синтаксис для таблицы значений
(выражение1, выражение2,...,выражениеN) В (&ТЗ), где в таблице значений ТЗ используются N первых колонок
20. В интернете есть шутка по поводу того, как конструктор запроса постоянно делает ЛЕВОЕ соединение таблиц (и меняет их местами), как бы мы не указывали ПРАВОЕ:
1С:Предприятие любит «налево».
21. Сложные запросы удобно отлаживать в консоли запросов. Существует их в интернете много. После отладки запроса его можно скопировать и в конструкторе запроса есть замечательная кнопка «Запрос», куда можно вставить его в том же виде и сохранить (раньше была только возможность скопировать в конфигураторе и сделать форматирование запроса посредством символа переноса строки). В окне, которое открывается при нажатии кнопки «Запрос», можно редактировать запрос и смотреть результат выполнения, что довольно удобно.
22.При проектировании отчетов СКД нужно помнить, что если нужно обеспечить фильтрацию по некоторому полю, необязательно добавлять параметр в текст запроса. У конструктора запросов есть вкладка «Компоновка данных», где можно добавлять параметры в условия. Кроме того, на уровне отчета СКД есть закладка условия, где можно добавлять произвольные условия и сохранять в быстрых настройках. В таком случае условия будут универсальными (равенство, неравенство, принадлежность, вхождение в список и т.д.).
23. При работе с документами бывает нужно добавить сортировку по виртуальному полю таблицы МОМЕНТВРЕМЕНИ, но вот незадача - во вложенных запросах сортировка по этому полю правильно не работает. Помогают танцы с бубнами: сортировка по виртуальному полю МОМЕНТВРЕМЕНИ заменяется на две сортировки: по дате и по ссылке. Также решить проблему можно через временную таблицу переносом вложенного запроса в отдельный запрос. На протяжении уже многих релизов данная фича или баг не исправлена.
Пример неправильно работающего запроса, получающего последний проведенный документ по указанному контрагенту (вернее, табличную часть документа):
ВЫБРАТЬ
РасходнаяТовары.Ссылка,
РасходнаяТовары.НомерСтроки,
РасходнаяТовары.Товар,
РасходнаяТовары.Количество,
РасходнаяТовары.Цена,
РасходнаяТовары.Сумма
ИЗ
Документ.Расходная.Товары КАК РасходнаяТовары
ГДЕ
РасходнаяТовары.Ссылка В
(ВЫБРАТЬ ПЕРВЫЕ 1
Д.Ссылка
ИЗ
Документ.Расходная КАК Д
ГДЕ
Д.Ссылка.Проведен
И Д.Контрагент = &Контрагент
УПОРЯДОЧИТЬ ПО Д.Ссылка.МоментВремени УБЫВ)
Возможные решения:
A) Заменить на УПОРЯДОЧИТЬ ПО на
УПОРЯДОЧИТЬ ПО Д.Дата УБЫВ
УПОРЯДОЧИТЬ ПО Д.Ссылка УБЫВ
Б) Можно перенести вложенный запрос во временную таблицу:
ВЫБРАТЬ ПЕРВЫЕ 1
Д.Ссылка
ПОМЕСТИТЬ ТЗСсылка
ИЗ
Документ.Расходная КАК Д
ГДЕ
Д.Ссылка.Проведен
И Д.Контрагент = &Контрагент
УПОРЯДОЧИТЬ ПО
Д.Ссылка.МоментВремени УБЫВ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РасходнаяТовары.Ссылка,
РасходнаяТовары.НомерСтроки,
РасходнаяТовары.Товар,
РасходнаяТовары.Количество,
РасходнаяТовары.Цена,
РасходнаяТовары.Сумма
ИЗ
Документ.Расходная.Товары КАК РасходнаяТовары
ГДЕ
РасходнаяТовары.Ссылка В
(ВЫБРАТЬ
Т.Ссылка
ИЗ
ТЗСсылка КАК Т)
В) Можно обратиться к основной таблице документа, а уже затем к табличной части
ВЫБРАТЬ ПЕРВЫЕ 1
Расходная.Ссылка,
Расходная.Товары.(
Ссылка,
НомерСтроки,
Товар,
Количество,
Цена,
Сумма
)
ИЗ
Документ.Расходная КАК Расходная
ГДЕ
Расходная.Контрагент = &Контрагент
И Расходная.Проведен
УПОРЯДОЧИТЬ ПО
Расходная.МоментВремени УБЫВ
24. При обращении к главной таблице документа(справочника) можно в условии обратиться к данным подчиненной таблицы (табличной части). Такая возможность называется разыменование полей табличной части. В качестве примера задачи можно привести задачу поиска документов, содержащих в табличной части определенный товар.
Пример:
Выбрать Приходная.Ссылка ИЗ Документ.Приходная Где Приходная.Товары.Номенклатура = &Номенклатура.
Преимущество этого запроса перед запросом ко вложенной таблице Приходная.Товары в том, что если есть дубли в документах , результат запроса вернет только уникальные документы без использования ключевого слова РАЗЛИЧНЫЕ.
Сравните:
Выбрать Различные Товары.Ссылка ИЗ Документ.Приходная.Товары как Товары Где Товары.Номенклатура = &Номенклатура.
На этом месте, пожалуй, всё. Понятно, что в языке запросов ещё много неосвещенных мной вопросов. Для написания статьи была использована информация, полученная мной после прохождения базового курса 1С 8.2 spec8.ru, а также из книги «1С 8.2 Руководство разработчика» и просторов интернета.
Всем спасибо!
Автор: fpat Категория:
Запросы
Горячие клавиши 1С Разработчику [ Конфигуратор ] Основные команды:
Кодирование:
Ctrl+Пробел - вызов подсказки
Ctrl+Q - вызов шаблона
Ctrl+F1 - поиск в синтакс-помощнике
Ctrl + L - удалить текущую строку
Alt+Shift+F - отформатировать код
Исследование:
F12 - ставим курсор на процедуре или функции и переходим к определению процедуры или функций.
Ctrl+(минус) - перемещает назад в модуль, из которого ушли через F12
Ctrl+T - найти в дереве конфигурации
Ctrl+F - найти объект метаданных или его реквизит в дереве метаданных.
Отладка:
F5 - начать/продолжить отладку
F9 - установить/снять точку останова
F10 - шагнуть через процедуру или функцию, на следующую строку кода
F11 - идти по порядку с заходом во все процедуры и функции.
Alt+F9 - список точек останова
Shift+F9 - вычислить выражение
Ctrl+Shift+F9 - отк./вкл. точку остан.
Ctrl+Alt+W - открыть табло
Ctrl+Alt+C - открыть стек вызовов
Закладки:
Alt+F2 - установить/снять закладку
F2 - к следующей закладке
Shift+F2 - к предыдущей закладке
Быстрый переход по Процедурам, Функциям, Условиям, Циклам:
Ctrl+[ - перейти назад
Ctrl+] - перейти вперед
Ctlr+G - перемещения к строке кода
Окно сообщений:
Ctrl+Alt+Z - очистить.
Ctrl+Shift+Z - очистить и закрыть
Рассмотрим более подробно:
Глобальные действия
Создать новый документ -
Ctrl + N
Открыть существующий документ -
Ctrl + O
Активизировать поле поиска в командной панели -
Ctrl + D
Открыть "Глобальный поиск по текстам" -
Ctrl + Shift + F
Открыть "Результаты глобального поиска по текстам" -
Ctrl + Shift + H
Запустить 1С:Предприятие без отладки -
Ctrl + F5
Открыть окно "Конфигурация" -
Ctrl + Shift + С
Обновить конфигурацию БД -
F7
Открыть "Шаблоны текста" -
Ctrl + Shift + T
Открыть встроенный "Калькулятор" системы 1С:Предприятие -
Ctrl + F2
Открыть "Свойства" -
Alt + Enter
Открыть "Дополнительно" -
Shift + Alt + Enter
Открыть "Служебные сообщения" -
Ctrl + Alt + O
Закрыть "Служебные сообщения" -
Ctrl + Shift + Z
Очистить служебные сообщения -
Ctrl + Alt + Z
Открыть "Справку" -
F1
Открыть "Содержание справки" -
Shift + F1
Открыть "Индекс справки" -
Shift + Alt + F1
Открыть "Поиск по справке" -
Ctrl + Alt + F1
Открыть "Синтакс-Помощник -
Ctrl + Shift + F1
Поиск по индексу в "Синтакс-Помощнике" -
Ctrl + F1
Общие действия
Удалить -
Del
Добавить -
Ins
Сохранить активный документ -
Ctrl + S
Печать активного документа -
Ctrl + P
Печать на текущий принтер -
Ctrl + Shift + P
Копировать в буфер обмена -
Ctrl + C -
Ctrl + Ins
Вырезать в буфер обмена -
Ctrl + X -
Shift + Del
Вставить из буфера обмена -
Ctrl + V -
Shift + Ins
Добавить к буферу обмена -
Shift + Num+
Вычесть из буфера обмена -
Shift + Num-
Выделить все -
Ctrl + A
Отменить последнее действие -
Ctrl + Z -
Alt + BackSpace
Вернуть отмененное действие -
Ctrl + Y -
Shift + Alt + BackSpace
Найти -
Ctrl + F
Найти следующий -
F3
Найти следующий выделенный -
Ctrl + F3
Найти предыдущий -
Shift + F3
Найти предыдущий выделенный -
Ctrl + Shift + F3
Заменить -
Ctrl + H
Найти в дереве -
Ctrl + T
Следующий элемент в результатах поиска и окне сообщений -
F8
Предыдущий элемент в результатах поиска и окне сообщений -
Shift + F8
Развернуть (узел дерева, группу табличного документа, группировку модуля) -
Ctrl + Num+
Свернуть (узел дерева, группу табличного документа, группировку модуля) -
Ctrl + Num-
Развернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные -
Ctrl + Alt + Num+
Свернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные -
Ctrl + Alt + Num-
Развернуть (все узлы дерева, группы табличного документа, группировки модуля) -
Ctrl + Shift + Num+
Свернуть (все узлы дерева, группы табличного документа, группировки модуля) -
Ctrl + Shift + Num-
Следующая страница -
Ctrl + PgDn -
Ctrl + Alt + F
Предыдущая страница -
Ctrl + PgUp -
Ctrl + Alt + B
Включить/выключить жирность -
Ctrl + B
Включить/выключить курсив -
Ctrl + I
Включить/выключить подчеркивание -
Ctrl + U
Переход к предыдущей главе справки -
Alt + Left
Переход к следующей главе справки -
Alt + Right
Управление окнами
Закрыть активное окно, модальный диалог или приложение -
Alt + F4
Закрыть активное обычное окно -
Ctrl + F4
Закрыть активное окно (кроме обычных) -
Shift + Esc
Активизировать следующее обычное окно -
Ctrl + Tab -
Ctrl + F6
Активизировать предыдущее обычное окно -
Ctrl + Shift + Tab -
Ctrl + Shift + F6
Активизировать следующую секцию окна -
F6
Активизировать предыдущую секцию окна -
Shift + F6
Вызвать системное меню приложения или модального диалога -
Alt + Space
Вызвать системное меню окна (кроме модальных диалогов) -
Alt + Hyphen(-) -
Alt + Num-
Вызвать главное меню -
Alt -
F10
Вызвать контекстное меню -
Shift + F10
Переход по истории активности окон
Переместиться назад -
Ctrl + "-"
Переместиться вперед -
Ctrl + Shift + "-"
Вернуть активность обычному окну -
Esc
Форма
Перейти к следующему элементу формы/выполнить действие кнопки по умолчанию -
Enter
Выполнить действие кнопки по умолчанию -
Ctrl + Enter
Перейти к следующему элементу формы -
Tab
Вернуться к предыдущему элементу формы -
Shift + Tab
Активизировать командную панель, связанную с активным элементом управления/формой -
Alt + F10
Открыть "Список элементов управления формы" -
Ctrl + Shift + L
Перемещение по элементам управления, объединенным в одну группу -
Up, Down, Left, Right
Работа со списком и деревом
Открыть -
F2
Обновить -
Ctrl + Shift + R
Скопировать -
F9
Новая группа -
Ctrl + F9
Удалить строку -
Shift + Del
Перемещение строки вверх -
Ctrl + Shift + Up
Перемещение строки вниз -
Ctrl + Shift + Down
Перенести элемент в другую группу -
Ctrl + Shift + M
Перейти на уровень вниз с одновременным раскрытием группы -
Ctrl + Down
Перейти на уровень вверх (к "родителю") -
Ctrl + Up
Закончить редактирование -
Shift + F2
Развернуть узел дерева -
Num+ -
Ctrl + Num+
Свернуть узел дерева -
Num- -
Ctrl + Num-
Развернуть узел дерева и все подчиненные -
Num* -
Ctrl + Alt + Num+
Свернуть узел дерева и все подчиненные -
Ctrl + Alt + Num-
Развернуть все узлы дерева (выполняется в любом месте дерева) -
Ctrl + Shift + Num+
Свернуть все узлы дерева (выполняется в любом месте дерева) -
Ctrl + Shift + Num-
Изменение флажка -
Пробел
Поле ввода
Переключить режим вставки/замены -
Ins
Кнопка выбора -
F4
Кнопка открытия -
Ctrl + Shift + F4
Очистить поле -
Shift + F4
Удалить символ слева от курсора -
BackSpace
Удалить символ справа от курсора -
Del
Удалить слово слева от курсора -
Ctrl + BackSpace
Удалить слово справа от курсора -
Ctrl + Del
Перейти в начало строки -
Home
Перейти в конец строки -
End
Поле картинки
Увеличить масштаб -
Num+
Уменьшить масштаб -
Num-
Прокрутить -
Up, Down, Left, Right
Прокрутить на размер окна вверх -
Page Up
Прокрутить на размер окна вниз -
Page Down
Прокрутить на размер окна влево -
Alt + PgUp
Прокрутить на размер окна вправо -
Alt + PgDn
Редактор управляемых форм
Переключиться на закладку "Форма" -
Alt + 1
Переключиться на закладку "Модуль" -
Alt + 2
Переключиться на закладку "Форма" и активизировать закладку "Элементы" -
Alt + 3
Переключиться на закладку "Форма" и активизировать закладку "Реквизиты" -
Alt + 4
Переключиться на закладку "Форма" и активизировать закладку "Команды" -
Alt + 5
Переключиться на закладку "Форма" и активизировать закладку "Командный интерфейс" -
Alt + 6
Переключиться на закладку "Форма" и активизировать закладку "Параметры" -
Alt + 7
Переключиться на закладку "Форма" и активизировать окно предварительного просмотра формы -
Alt + 8
Редактор форм
Протестировать форму -
Ctrl + R
Переместить элемент управления -
Up, Down, Left, Right
Копировать элемент управления -
Ctrl + (Up, Down, Left, Right)
Копировать элемент управления с инверсией выравнивания по сетке -
Ctrl + Alt + (Up, Down, Left, Right)
Изменить размер элемента управления -
Shift + (Up, Down, Left, Right)
Изменить размер элемента управления с инверсией выравнивания по сетке -
Shift + Alt + (Up, Down, Left, Right)
Инверсия использования сетки -
Alt + (Up, Down, Left, Right)
Открыть окно "Привязка границ для элемента…" -
Ctrl + Shift + S
Начало редактирования -
F2
Редактор табличных документов
Перейти к ячейке -
Ctrl + G
Перемещение по ячейкам -
Up, Down, Left, Right
Перемещение по ячейкам к следующей заполненной или пустой -
Ctrl + (Up, Down, Left, Right)
Перемещение по ячейкам к следующей заполненной или пустой с выделением ячеек -
Ctrl + Shift + (Up, Down, Left, Right)
Выделение ячеек -
Shift + (Up, Down, Left, Right)
Выделение ячеек от текущей до начала строки -
Shift + Home
Выделение ячеек от текущей до конца строки -
Shift + End
Выделение строк -
Alt + Shift + (Up, Down)
Выделение строк до следующей заполненной или пустой ячейки -
Ctrl + Alt + Shift + (Up, Down)
Выделение колонок -
Alt + Shift + (Left, Right)
Выделение колонок до следующей заполненной или пустой ячейки -
Ctrl + Alt + Shift + (Left, Right)
Выделение ячеек от текущей до начала документа -
Ctrl + Shift + Home
Выделение ячеек от текущей до конца документа -
Ctrl + Shift + End
Прокрутить на страницу вверх -
PgUp
Прокрутить на страницу вниз -
PgDn
Прокрутить на страницу влево -
Alt + PgUp
Прокрутить на страницу вправо -
Alt + PgDn
Перейти к редактированию содержимого ячейки -
Enter
Переключение режима редактирования/ввода в ячейке -
F2
Перейти в начало строки -
Home
Перейти в конец строки -
End
Перейти в начало текста -
Ctrl + Home
Перейти в конец текста -
Ctrl + End
Установка имени текущей области -
Ctrl + Shift + N
Редактор текстовых документов и модулей
Переключить режим вставки/замены -
Ins
Перейти в начало строки -
Home
Перейти в конец строки -
End
Выделить до начала строки -
Shift + Home
Выделить до конца строки -
Shift + End
Перейти в начало текста -
Ctrl + Home
Перейти в конец текста -
Ctrl + End
Выделить до начала текста -
Ctrl + Shift + Home
Выделить до конца текста -
Ctrl + Shift + End
Прокрутить на одну строку вверх -
Ctrl + Up
Прокрутить на одну строку вниз -
Ctrl + Down
Перейти к началу предшествующего слова -
Ctrl + Left
Перейти к началу следующего слова -
Ctrl + Right
Выделить слово -
Ctrl + W
Выделить предшествующее слово -
Ctrl + Shift + Left
Выделить следующее слово -
Ctrl + Shift + Right
Прокрутить на страницу вверх -
PgUp
Прокрутить на страницу вниз -
PgDn
Выделить предыдущую страницу текста -
Shift + PgUp
Выделить следующую страницу текста -
Shift + PgDn
Снять выделение -
Esc
Перейти к строке -
Ctrl + G
Удалить символ слева от курсора -
BackSpace
Удалить символ справа от курсора -
Del
Удалить слово слева от курсора -
Ctrl + BackSpace
Удалить слово справа от курсора -
Ctrl + Del
Установить/снять закладку -
Alt + F2
Следующая закладка -
F2
Предыдущая закладка -
Shift + F2
Удалить текущую строку -
Ctrl + L
Форматировать блок -
Shift + Alt + F
Добавить комментарий -
Ctrl + Num/
Удалить комментарий -
Ctrl + Shift + Num/
Cдвинуть блок вправо -
Tab
Сдвинуть блок влево -
Shift + Tab
Синтаксический контроль -
Ctrl + F7
Процедуры и функции модуля -
Ctrl + Alt + P
Перейти к объявлению процедуры или переменной -
F12
Контекстная подсказка -
Ctrl + Пробел
Свернуть группу (курсор может быть в любом месте группы) -
Ctrl + Num -
Развернуть группу (курсор может быть в любом месте группы) -
Ctrl + Num +
Cвернуть все группы -
Ctrl + Shift + Num -
Развернуть все группы -
Ctrl + Shift + Num +
Обновить группировки -
Ctrl+ Shift + R
Активизация шаблона -
Ctrl + Q
Перейти по операторным скобкам назад -
Ctrl + [
Перейти по операторным скобкам вперед -
Ctrl + ]
Перейти по операторным скобкам назад с выделением текста -
Ctrl + Shift + [
Перейти по операторным скобкам вперед с выделением текста -
Ctrl + Shift + ]
Отладчик
Начать/продолжить отладку -
F5
Перезапуск приложения для отладки -
Ctrl + Shift + F5
Прекратить отладку -
Shift + F5
Шагнуть в -
F11
Шагнуть через -
F10
Шагнуть из -
Shift + F11
Идти до курсора -
Shift + F10
Установить/снять точку останова -
F9
Отключить/включить точку останова -
Ctrl + Shift + F9
Список точек останова -
Alt + F9
Вычислить выражение -
Shift + F9
Открыть табло -
Ctrl + Alt + W
Открыть стек вызовов -
Ctrl + Alt + C
Редактор картинок
Переключение картинка/коллекция -
Ctrl + K
Параметры картинки/коллекции -
Shift + Alt + P
Отразить слева направо -
Ctrl + H
Отразить сверху вниз -
Ctrl + Shift + H
Выделение прямоугольником -
Shift + Alt + S
Масштаб -
Ctrl + M
Ластик -
Ctrl + Shift + E
Заливка -
Ctrl + Shift + F
Карандаш -
Ctrl + Shift + I
Кисть -
Ctrl + Shift + B
Линия -
Ctrl + Shift + L
Кривая -
Shift + Alt + С
Аэрограф -
Ctrl + Shift + A
Текст -
Shift + Alt + T
Увеличение масштаба -
Ctrl + Num+
Уменьшение масштаба -
Ctrl + Num-
Палитра свойств
Сохранить свойства -
Enter
Восстановить значения свойства -
Esc
Раскрыть категорию свойств -
Num+
Закрыть категорию свойств -
Num-
Перейти в начало палитры -
Home
Перейти в конец палитры -
End
Перейти к предыдущему свойству -
Up
Перейти к следующему свойству -
Down
Прокрутить на страницу вверх -
PgUp
Прокрутить на страницу вниз -
PgDn
Перейти к предыдущей категории -
Ctrl + PgUp
Перейти к следующей категории -
Ctrl + PgDn
Редактор карты маршрута
Перейти на следующий элемент карты -
Tab
Перейти на предыдущий элемент карты -
Shift + Tab
Уменьшить ширину элемента карты -
Shift + (Left)
Увеличить ширину элемента карты -
Shift + (Right)
Уменьшить высоту элемента карты -
Shift + (Up)
Увеличить высоту элемента карты -
Shift + (Down)
Перемещение выделенного варианта вверх (только при выделенном варианте в -
Ctrl + (Up)
элементе "Выбор варианта")
Перемещение выделенного варианта вниз (только при выделенном варианте в -
Ctrl + (Down)
элементе "Выбор варианта")
Поиск -
Ctrl + F
Найти следующий -
F3
Найти предыдущий -
Shift + F3
Замена -
Ctrl + H
Конфигурация
Открыть конфигурацию -
Alt + К + Enter
Поиск во всех текстах -
Alt + К + Т
Объединение конфигураций -
Alt + К + О
Загрузить измененную конфигурацию -
Alt + K + З
Конвертирование данных -
Alt + К + Е
Администрирование
Пользователи -
Alt + А + П
Сохранить данные -
Alt + А + Х
Восстановить данные -
Alt + А + В
Выгрузить данные -
Alt + А + Ы
Загрузить данные -
Alt + А + Г
Настройка журнала регистрации -
Alt + А + Н
Распределенная ИБ -
Alt + А + Р
Управление -
Alt + А + Р + У
Автообмен -
Alt + А + Р + А
Действия
Открыть в отладчике -
Alt + Д + Т
Синтаксический контроль запросов -
Alt + Д + К
Синтаксический контроль -
Alt + Д + И
Процедуры и функции модуля -
Alt + Д + Р
Файл
Новый -
Ctrl + N
Открыть -
Ctrl + O
Сохранить -
Ctrl + S
Печать -
Ctrl + P
Сравнить файлы -
Alt + Ф + Р
Закрыть -
Alt + Ф + З
Просмотр -
Alt + Ф + Р + Р + Enter
Параметры страницы -
Alt + Ф + М
Работа с закладками
Предыдущая закладка -
Shift + F2
Закладка -
Alt + F2
Следующая закладка -
F2
Работа с блоком
Форматировать -
Ctrl + Shift +F
Сдвинуть вправо -
Tab
Сдвинуть влево -
Shift + Tab
Добавить комментарий -
Ctrl + Num /
Удалить комментарий -
Ctrl + Shift + Num /
Окна
Закрыть окно -
Ctrl + F4
Следующее окно -
Ctrl + Shift + F6
Предыдущее окно -
Ctrl + F6
Каскадом -
Alt + О + К
Закрыть окно сообщений -
Ctrl + Shift + z
Следующая страница -
Ctrl + Alt + F
Предыдущая страница -
Ctrl + Alt + B
Разделить окно -
Alt + О + Р
Поиск и замена
Заменить -
Ctrl + Shift + F3
Искать -
Ctrl + F3
Повторить поиск -
F3
Искать назад -
Alt + F3
Искать вперед -
Shift + F3
Переход к строке -
Ctrl + Shift + L
Сервис
Калькулятор -
Ctrl + F2
Синтаксис помощник -
Alt + С + С
Настройка шаблонов -
Alt + С + Н
Временная блокировка -
Alt + С + В
Запуск предприятия -
F11
Запуск отладчика -
F12
Помощь
Помощь -
F1
Содержание -
Shift + F1
Поиск в Синтакс-Помощнике -
Ctrl + F1
О программе -
Alt + П + О
Общие
Свойства -
Alt + Enter
Выход -
Alt + F4 Категория:
1С Общие вопросы - Обычные формы