Проверка на заполнение в запросе 1С

Описание ошибки:
В общем-то откровенно это вопиющей ошибкой не назовешь, но выполнению задачи воспрепятствовало изрядно. Поэтому бросился уточнять, как же в 1С 8 «как в запросе проверить заполнение составной тип данных».
Найденные решения:

Задача была простой — нужно было в запросе выполнять условие при проверке заполнения реквизита документа, который имел составной тип данных, т.е. в реквизите можно было указать разные типы документов. Каковым, к примеру, является реквизит «Сделка» документа «Реализация товаров и услуг» конфигурации 1С: Управление торговлей 8 ред. 10.3.

Был составлен запрос с условием, но условие определенно не хотело работать, данные выводимые в консоли запросов, были неверными. Условие: Реализации.Ссылка.Сделка <> NULL не срабатывало, равно как и Реализации.Ссылка.Сделка <> НЕОПРЕДЕЛЕНО

Поиск решения в интернете подсказал на одной изстраниц обсуждения форума сайта www.forum.mista.ru, что в таком случае слудет дополнительно обратиться к ссылке составного реквизита:

Внимание было обращено на эту мелочь, и приведение текста запроса к виду: Реализации.Ссылка.Сделка.Ссылка <> НЕОПРЕДЕЛЕНО дало положительный рабочий результат.

Оцените, помогло ли Вам предоставленное описание решения ошибки?

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

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

Для этого откроем форму документа ОказаниеУслуги.

10. В левом верхнем окне перейдем на закладку Командный интерфейс.

В разделе Панель навигации раскроем группу Перейти и установим видимость для команды открытия регистра накопления Остатки материалов.

11. Запустим 1 С:Предприятие в режиме отладки и в разделе Оказание услуг откроем документ Оказание услуги № 1 и нажмем Провести и

закрыть, то есть перепроведем его.

Рисунок 3.13 – Список регистра накопления «ОстаткиМатериалов»

В регистре накопления Остатки материалов появилась еще одна запись, что соответствует количеству строк в табличной части проведенного документа.

Все поля регистра заполнились данными документа так, как были заданы в обработчике проведения документа Оказание услуги.

Пиктограмма со знаком «минус» слева от записи указывает на тип движения — Расход (рисунок 3.13).

Сейчас виден весь список движений регистра. Открыв этот список из формы документа, можно отфильтровать движения по документу-регистратору:

1. Откроем еще раз документ Оказание услуги № 1.

2. В форме документа появилась панель навигации, в которой мы можем переходить к списку записей регистра Остатки материалов, связанному с документом, и обратно к содержимому документа (рисунок 3.14).

Рисунок 3.14 – Переход к регистру накопления из формы документа

Сформированные таким образом движения этого документа будут не совсем правильны.

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

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

Задания на исследование:

1. Исследовать процесс создания регистра накопления «ОстаткиМатериалов».

2. Ответить на вопросы и оформить отчет.

Вопросы для проверки подготовки студентов к занятию

1. Для чего предназначен объект конфигурации Регистр накопления?

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

3. Для чего нужны измерения регистра, ресурсы и реквизиты?

4. Что такое движения регистра и что такое регистратор?

5. Как создать новый регистр накопления и описать его структуру?

6. Как создать движения документа с помощью конструктора движений?

7. Как средствами встроенного языка обойти табличную часть документа и обратиться к ее данным?

8. Как показать команды открытия списка регистра в интерфейсе?

ЛИТЕРАТУРА

1. Введение в конфигурирование в системе «1С: Предприятие 8». Основные объекты. Версия 8.2. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2010.

2. Использование запросов в системе «1С: Предприятие 8». Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

3. 1С: Предприятие 8.2. Руководство разработчика. Часть 1. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

4. 1С: Предприятие 8.2. Руководство разработчика. Часть 2. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

5. 1С: Предприятие 8.2. Руководство администратора. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

» ”……………..20_ _г Методическая разработка составлена

ст. преподавателем кафедры АСУ Т.Авакян

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

Если мы откроем любую конфигурацию 1С Предприятие, в дереве метаданных увидим раздел «Регистры накопления».

Рис.1 Регистры накопления

Если в пользовательском режиме мы зайдем в раздел «Все функции», то там тоже можем увидеть ветку «Регистры накопления».

Рис.2 Все функции

Регистр накопления – это таблица, накапливающая информацию из движения документов (приход/расход, обороты). Откроем для примера регистр накопления «Зарплата к выплате». Мы видим, что строки «Начисление зарплаты» и «Отпуск» отмечены знаком «+», т.е. увеличивают данные регистра, а «Ведомость в банк» (документ, которым произведена выплата) отмечен знаком «-«, т.е. уменьшает данные регистра по каждой записи, в данном случае – по физическому лицу (сотруднику).

Рис.3 Таблица

Если мы откроем документ, например, «Ведомость в банк», и посмотрим его движения по регистрам (кнопка «Показать проводки и другие движения документа»), то увидим записи производимые документом в связанные с ним регистры.

Рис.4 Ведомость в банкРис.5 Ведомость в банк

Аналогично происходят записи в регистры накопления по приходу и расходу товара, материалов, по учету НДС и другие примеры. Используя данные таких таблиц, программе гораздо проще составить отчет по запросу пользователя.

Рассмотрим, как устроены регистры накопления изнутри, на примере программы «1С:Бухгалтерия 3.0».

Настройки регистра накопления

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

Рис.6 Настройки регистра накопления

Регистры бывают двух видов – «Остатки» и «Обороты». Когда планируется получать только сведения об оборотах, то выбираем этот вид регистра (например, обороты реализации). Если необходимо получать данные и об оборотах, и об остатках (как например, остатки товаров на складах, остаток задолженности по заработной плате), то выбираем вид регистра «Остатки».

На закладке «Подсистема» отмечается подсистема, где задействован регистр.

Рис.7 На закладке «Подсистема» отмечается подсистема, где задействован регистр

На закладке «Данные» описывается структура регистра. Измерения – записи, по которым в дальнейшем мы можем получить остатки или посмотреть обороты. Ресурсы – реквизит для определения числовых данных по регистру. Это может быть сумма, количество (например, количество проданных товаров, сумма проданных товаров, сумма выплаченной или начисленной зарплаты).

Рис.8 На закладке «Данные» описывается структура регистра

Раздел «Реквизиты» предназначен для хранения сопутствующей информации и используется на усмотрение пользователя. Существует еще один набор стандартных реквизитов, список которых не изменяется. Кнопка «Агрегаты» активна только для регистров с видом «Обороты».

Рис.9 Раздел «Реквизиты»

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

Рис.10 «Регистраторы»

Имея представление о настройках регистров накопления, попробуем создать свой регистр и посмотрим, как отразятся в нем записи в режиме пользователя.

Как сделать регистр накопления в 1С

Продолжим рассматривать пример с регистрами по зарплате. Создадим новый регистр накопления (кнопка «Добавить») и назовем его «ДолгСотруднику».

Рис.11 «ДолгСотруднику»

На закладке «Основные» укажем название и вид регистра – «Остатки».

Рис.12 На закладке «Основные» укажем название и вид регистра – «Остатки»

На закладке «Подсистемы» указываем подсистему «ВзаиморасчетыССотрудниками».

Рис.13 На закладке «Подсистемы» указываем подсистему «ВзаиморасчетыССотрудниками»

На «Функциональные опции», в которых участвует наш регистр, устанавливаем галочку «ИспользоватьНачислениеЗарплаты» (блок учета заработной платы в конфигурации «Бухгалтерия»).

Рис.14 «Функциональные опции»

На закладке «Данные» добавим для примера несколько измерений – «Сотрудник» и «Основание» (отражающий документ основание записи).

Рис.15 «Сотрудник» и «Основание»

Для измерения «Сотрудник» указываем тип – СправочникСсылкаСотрудники, а для «Основания» – ОпределяемыйТипДокументОснованияЗарплатыКВыплате.

Рис.16 Для измерения «Сотрудник» указываем тип – СправочникСсылкаСотрудники, а для «Основания» – ОпределяемыйТипДокументОснованияЗарплатыКВыплате

На закладке «Регистраторы» перечислим документы, которые будут производить запись в наш регистр. В нашем примере сделаем акцент на документе «Ведомость на выплату зарплаты в банк» и далее будем следить за движениями регистра, сделанными этим документом.

Рис.17 Ведомость на выплату зарплаты в банк

Регистр готов.

Рис.18 Регистр готов

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

Рис.19 «Конструктор движений»

Открываем наш регистр.

Рис.20 Открываем наш регистр

Тип движения в нашем примере «Расход» (т.к. выплачивая зарплату, мы уменьшаем задолженность сотруднику). И в таблицу с реквизитами надо прописать (сопоставив) реквизиты документа. Выбрать их можно двойным щелчком на соответствующей строке. Заполнив, нажимаем «Ок».

Рис.21 Тип движения в нашем примере «Расход»

Программа автоматически конструктором создаст модуль обработки.

Рис.22 Программа автоматически конструктором создаст модуль обработки

Обновим данные конфигурации и запустим программу в пользовательском режиме.

Запись в регистр накопления 1С 8.3

Проведем документ «Ведомость в банк» и посмотрим, какие движения по регистрам он сформировал (кнопка Кнопка – «Показать проводки и другие движения документа»). Мы видим, что у нас появилась закладка с движениями по нашему регистру «Долг сотруднику» — строка «Расход».

Рис.23 Запись в регистр накопления

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

Как изменить регистр накопления в 1С 8.3? Корректировка регистров накопления 1С

Иногда возникает необходимость обнулить или подкорректировать записи регистров накопления. Для этого в «1С:Бухгалтерия» можно воспользоваться документом «Операция введенная вручную» (в разделе меню «Операции»). Создав новую операции, перейдем по кнопке «Еще» к пункту «Выбор регистров».

Рис.24 Корректировка регистров накопления

Выбираем регистр, по которому хотим сделать корректировочную запись, и нажимаем «Ок».

Рис.25 Выбираем регистр, по которому хотим сделать корректировочную запись

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

Рис.26 Закладка с выбранным регистром

Сформировать отчет по регистрам накопления, мы можем, воспользовавшись «Универсальным отчетом» (раздел «Отчеты»), выбрать вариант отчета – по регистрам накопления, и указать нужный для анализа регистр. В отчете мы видим, что в нем отразилась наша корректировочная запись по регистру «Учет доходов для исчисления НДФЛ».

Рис.27 Корректировочная запись по регистру «Учет доходов для исчисления НДФЛ»

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

Рис.28 Записи формируются отдельно по каждому регистру и при необходимости их можно откорректировать или удалить

Понимание методов и принципов работы регистров накопления позволит избежать ошибок в работе с программой и при их возникновении быстро с ними справится.

Как заполнить табличную часть формы программно?  6
  Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  37
  Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  19
 была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2)  0
  Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей. COM-подключение к базе 7.7 из 8.2 1С  6
 Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=» D:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *