Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Содержание
  1. Практический обзор для начинающих системных аналитиков
  2. Общие сведения о работе обработки
  3. Обособленный учет себестоимости товаров
  4. Задать вопрос
  5. Настройка номенклатуры поставщика в 1С
  6. Демонстрация функционала в конфигурации 1С
  7. Видео 1 – Особенности формирования проводок в 1C
  8. Видео 2 – Пример отладки запросов, формирующих проводки в 1C
  9. На этом курсе Вы изучите все, что требуется знать каждому разработчику
  10. Могут ли на одном столбце быть установлены и первичный и внешний ключи?
  11. Можно ли сделать связь с ограничением уникальности?
  12. Может ли быть разное число столбцов и типы данных полей у внешнего ключа и первичного (или внешнего ключа и UNIQUE)?
  13. Можно ли создать таблицу без первичного ключа?
  14. Сколько первичных ключей может иметь таблица?
  15. Поддерживаемые конфигурации
  16. Можно ли использовать первичный ключ и ограничение уникальности вместе (т. е. для одного столбца установить два ограничения)?
  17. Сколько ограничений уникальности может иметь таблица?
  18. Обновления
  19. Обработка раборает c 6-ю видами ключей аналитики
  20. Можно ли в одной таблице (разных полях) использовать первичный ключ и ограничение уникальности? Может ли ограничение уникальности включать несколько столбцов?
  21. Можно ли использовать ограничение уникальности вместо первичного? В чём особенности?
  22. Выгрузка документов 1С на ТСД
  23. Обработка имеет 8 режимов работы
  24. Обновление наименований ключей аналитики
  25. Поиск записей регистров с одинаковыми ключами аналитики
  26. Проверка ссылочной целостности ключей аналитики
  27. Поиск задублированных ключей аналитики
  28. Проверка соответствия измерений реквизитам ключа
  29. Поиск ключей с несоответствующими контрагентами партнерам
  30. Поиск ключей с отсутствующими записями регистра сведений
Оксана Соболевская (Давыдович)

Системный аналитик EvApps

Всем привет! Меня зовут Оксана, я системный аналитик из компании EvApps. Что побудило меня написать эту статью? Я обучаю стажеров – системных аналитиков, и недавно столкнулась с такими вопросами, о которых раньше даже не задумывалась.

Дополнительный анализ:  Управленческий учет с нуля

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

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

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

Практический обзор для начинающих системных аналитиков

Время на прочтение

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Общие сведения о работе обработки

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

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

Исходный код полностью открыт.

Бесплатная техническая поддержка 30 календарных дней.

Проходила тестирование на ERP 2.2.2.192, УТ 11.3.2.157

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

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

Счета учёта номенклатуры находятся в разделе «Номенклатура и склад» в графе «Справочники и настройки».

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

В появившемся окне задаются счета учёта для выбранного элемента номенклатуры.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Для создания новой настройки нажмите кнопку «Создать», а также в программе можно создать  новый элемент путем копирования текущего.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Счета учета можно настроить:

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

При настройке счетов учёта номенклатуры необходимо указать счета, которые далее будут проставляться автоматически в документах:

Например, для номенклатурной группы «Материалы» были заданы следующие счета:

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Изменить имеющуюся запись документа можно по кнопке «Еще» —  «Изменить».

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Для удаления созданных счетов учёта номенклатуры нажмите кнопку «Еще» —  «Удалить».

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Также настройку счетов учёта номенклатуры можно из справочника «Номенклатуры» через выбранный элемент.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Выгрузка данных номенклатуры в 1С позволяет сократить время ожидания ответа устройства при сканировании штрих-кода. Это происходит благодаря тому, что для поиска ТСД обращается к собственным списком, а не связывается с сервером. Выгрузка номенклатуры также дает возможность управлять ценами и остатками товара напрямую через ТСД. Как выгрузить номенклатуру из 1С, рассказываем в статье.

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

Чтобы открыть окно настройки справочника номенклатуры, нажмите на кнопку Открыть окно обмена справочников и печати. Для того чтобы произвести настройку выгрузки справочника, воспользуйтесь кнопкой «Настроить».

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Если нажать Выгрузить справочник на ТСД, то номенклатура выгрузится без заполнения списков, согласно настройкам по умолчанию.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

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

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

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

В целях обновления данных используется Частичная выгрузка товара. По умолчанию обновление данных происходит автоматически (при наличии интернет-связи с сервером). Отсутствие флажка напротив позиции говорит о том, что ТСД выгружает только обновление данных.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Нужна помощь с выгрузкой номенклатуры из 1С на ТСД? Оставляйте заявку, и мы поможем выполнить выгрузку товаров на терминал.

Обособленный учет себестоимости товаров

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

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

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

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

Эксперт портала ERP4u.ru

Консультации по вопросам автоматизации на базе ERP-систем:

— Установка и настройка систем 1С
— Сопровождение программ
— Типовая и нетиповая доработка
— Проектное внедрение системы под ключ
— Помощь и консультация по сдаче отчетов

Задать вопрос

Учет номенклатуры поставщика в 1С: УТ 11 является важной функцией у управления закупками. Номенклатура поставщика представляет собой перечень товаров, которые предлагает поставщик с настроенным соответствием с номенклатурой компании.

Так как наименования товаров у поставщика и у компании разные, внедрение данного функционала позволит:

• Ускорить оформление приходных накладных, полученных от поставщика;

• Ускорить создание цен поставщиков путем загрузки прайс-листа поставщика.

Помимо повышения скорости работы минимизируется риск совершить ошибку при работе с данными, например, совершить пересортицу.

Перейдем к настройкам системы 1С.

Настройка номенклатуры поставщика в 1С

Для включения возможности создания номенклатуры поставщиков в 1С и настройки соответствия с номенклатурой компании необходимо в настройках учета номенклатуры активировать соответствующую возможность.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Откроется список номенклатуры поставщика в 1С. Создадим новую номенклатуру. Для этого нажимаем на кнопку Создать. В открывшейся форме создания заполняем необходимые реквизиты. Сохраняем номенклатуру поставщика в 1С.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

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

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Настройка параметров прайс-листа

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

При сохранении документа выбираем вариант «Записать и провести», далее жмем Установить.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Нажимаем «Записать и провести» и жмем Установить

Демонстрация функционала в конфигурации 1С

Теперь переходим к демонстрации работы с номенклатурой поставщика в конфигурации 1С: Управление торговлей 11.

Откроем документ Заказ поставщику и вставим наименование номенклатуры поставщика в 1С в соответствующую колонку табличной части Товары.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

В этом случае потянется наименование товара поставщика.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Мы рассмотрели ручной способ ввода номенклатуры поставщика по одному товару. Разницы в скорости ввода не заметно. Но когда товаров будет больше, то гораздо быстрее будет заполнить товары из эксель файла.

Нажимаем заполнить товары из файла.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Вставляем колонки с наименованием товаров, количеством и ценой в таблицу и жмем Далее.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Товар сопоставился, переносим результат в документ.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

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

Специалист компании ООО «Кодерлайн»

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

Когда нужно сделать какую-то доработку или найти причину ошибки, разобраться в тексте такого запроса непросто.

Мы подготовили два видео, в которых объясняем, как работать с объемными запросами, и показываем, какие для этого есть инструменты.

В качестве примера разбираем формирование проводок по регламентированному учету в 1C:ERP – чтобы показать нюансы работы с очень большим и сложным запросом.

Это реальный кусок из курса, а не промо, чтобы ошеломить за 4 минуты. Поэтому в нем мы долго и детально (местами избыточно детально) разбираем работу сложного механизма – чтобы разобрался даже начинающий.

Общая длительность видео – 53 минуты.

Видео 1 – Особенности формирования проводок в 1C

Специалисты, работающие с 1С:Бухгалтерией, привыкли, что счета учета указываются непосредственно в документе. Можно настроить счета учета по умолчанию, но если пользователь изменит счет в документе, изменение попадет в проводки.

В 1C:ERP все по-другому. Счета учета в документах вообще не указываются. Необходимо настроить нормативно-справочную информацию, задать группы финансового учета для корректного формирования проводок.

Еще одно отличие заключается в моменте формирования проводок. В 1С:Бухгалтерии пользователь проводит документ – и сразу может посмотреть проводки.

В 1C:ERP при проведении документ не формирует сразу проводки по регламентированному учету – делается только отметка, что для этого документа нужно сформировать проводки. А затем при помощи регламентного задания формируются проводки для отмеченных документов. Либо можно вручную сформировать проводки для конкретного одиночного документа.

Если не знать, как устроен механизм проводок в 1C:ERP, при отладке запросов придется искать ошибки наугад, по шагам проходить программный код.

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

В документации Вы этого не найдете : )

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Видео 2 – Пример отладки запросов, формирующих проводки в 1C

При проведении документа приобретения материалов для одной позиции в проводки подставляется неправильный, по мнению пользователей, счет 41 (как для товаров), а для остальных поступивших материалов подставляется правильный счет 10.

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

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

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

Также рассмотрим удобный инструмент в 1C:ERP – обработку для тестирования формирования проводок. Она позволяет получить готовые тексты запросов для формирования проводок прямо в пользовательском режиме без использования отладчика! Не нужно вручную переносить в консоль запросов из отладчика текст каждого запроса, создающего временную таблицу – это удобно и существенно экономит время.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

На этом курсе Вы изучите все, что требуется знать каждому разработчику

Конфигурация Бухгалтерия предприятия, редакция 3.0. При попытке провести документ «требование-накладная» возникает ошибка:

Для целей учета НДС не списано 1,000 товара Мобильный кондиционер Ballu, счет учета: 10.09, склад: Основной склад, партия: Поступление (акт, накладная, УПД) БП-002346 от 18.09.2019 23:59:59

Для начала давайте посмотрим приходный документ, указанный в сообщении об ошибке.

Видим, что проводки корректировались, возможно менялся счет учета:

Посмотрим движения по регистру «Раздельный учет НДС»:

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

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

Теперь необходимо проверить все места, где используется данная аналитика. Я воспользовался универсальной обработкой поиска и замены значений, которая нашла только одну ссылку в регистре сведений «Аналитика учета затрат». Аналогичным образом исправляем:

Пробуем провести документ. Ошибки нет.

Могут ли на одном столбце быть установлены и первичный и внешний ключи?

Да, могут. Рассмотрим такую задачу. У нас есть три таблицы: продукты, пользователи и отзывы. И есть условие: пользователь на один товар может оставить только один отзыв.

Я выбрала вот такую реализацию.

Создаем таблицы пользователи и продукты:

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

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

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

2. Можно ли использовать UNIQUE вместо PRIMARY KEY? В чем особенности?PostgreSQL позволяет это сделать (важно учитывать ограничение NOT NULL), но рекомендуют устанавливать первичный ключ

3. Можно ли использовать первичный ключ и ограничение уникальности вместе (то есть для одного столбца установить два ограничения)?Можно, но это не имеет смыла. В этом случае UNIQUE будет избыточным и не будет учитываться

4. Можно ли сделать связь с таблицей, в которой не установлено PRIMARY KEY и UNIQUE?Нет, это невозможно

5. Можно ли сделать связь с полем в таблице, где установлен UNIQUE, но не установлен PRIMARY KEY?

6. Можно ли установить связь между таблицами без внешнего ключа?Нет, для установления связи необходимо использовать REFERENCES (на уровне БД)

7. Можно ли в одной таблице использовать первичный ключ и ограничение уникальности?Да, но в разных столбцах. Если использовать для одного столбца UNIQUE и PRIMARY KEY, то UNIQUE будет считаться избыточным и не будет учитываться.

8. Может ли первичный ключ состоять из нескольких столбцов?

9. Может ли в одной таблице быть установлено несколько PRIMARY KEY?

10. Может ли ограничение уникальности включать несколько столбцов?

11. Сколько ограничений уникальности может иметь таблица?

12. Может ли быть разное число столбцов и типы данных полей у внешнего ключа и первичного (или внешнего ключа и UNIQUE)?Нет, число столбцов и тип данных должен быть одинаковый

13. Может ли на одном поле быть уставлены и первичный и внешний ключи?

Можно ли сделать связь с ограничением уникальности?

Создаем таблицу, где установлено ограничение уникальности:

Таблица создана успешно, связь настроена.

Нет, это невозможно. Для установления связи между таблицами обязательно использование REFERENCES.

Примечание:Технически можно условно связать таблицы, без references, на уровне кода. Т. е. не создавая в БД внешние ключи. Но тогда программист берет на себя заботу следить за связями и целостностью данных программно. Без создания внешних ключей в БД можно породить хаос в данных. В идеале за связями нужно следить с двух сторон: и в программе, и в БД. Но только БД позволит не довести до беды и вовремя сигнализировать о возможной ошибке. В данном вопросе мы рассматриваем связи именно на уровне БД.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Может ли быть разное число столбцов и типы данных полей у внешнего ключа и первичного (или внешнего ключа и UNIQUE)?

Нет. Типы данных должны быть одинаковые, как и количество столбцов. В ином случае будет возникать ошибка.

Рассмотрим связь, которую установили в примерах выше.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Можно ли создать таблицу без первичного ключа?

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

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

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Сколько первичных ключей может иметь таблица?

Один и только один. Иначе получаем такую ошибку:

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Поддерживаемые конфигурации

  • ERP 2.2 (при необходимости поддержки более ранних редакций возможна доработка обработки)
  • УТ 11 (Управление торговлей)
  • КА 2 (Комплексная автоматизация)

Можно ли использовать первичный ключ и ограничение уникальности вместе (т. е. для одного столбца установить два ограничения)?

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

Например, я создаю таблицу:

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

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

Сколько ограничений уникальности может иметь таблица?

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

Обновления

20.02.2017 Версия 1.1.

06.03.2017 Версия 1.2

12.05.2017 Версия 1.3

12.09.2017 Версия 1.5

03.11.2017 Версия 1.6

20.03.2018 Версия 1.8

27.02.2019 Версия 1.9

26.04.2019 Версия 1.10

Обработка раборает c 6-ю видами ключей аналитики

Документ не проводится из-за примерно такой же ошибки, как в первом случае. Но ручных корректировок движений нет. Все отчеты видят только один документ поступления товаров и с ним всё в порядке. Попробуем разобраться в чем же дело.

1. Открываем движения документа поступления. Смотрим движения по «Раздельный учет НДС».

2. Копируем название Аналитики учета затрат в буфер обмена.

3. Открываем регистр накопления «Раздельный учет НДС», устанавливаем отбор по скопированной аналитике.

Видим, что кроме поступления есть еще какая-то операция, которая и списывает нужное нам количество товара.

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

Исправляем текущим периодом, введением документа Операция по регистру «Раздельный учет НДС» с положительным количеством.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Можно ли в одной таблице (разных полях) использовать первичный ключ и ограничение уникальности? Может ли ограничение уникальности включать несколько столбцов?

Ответ на оба вопроса – да.

Давайте для примера рассмотрим два случая:

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

Например, если у меня есть такая запись в таблице:

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

То я не смогу добавить строку со значением series_passport=7777 или number_passport=123454. Будет выдаваться ошибка. То есть проверка уникальности значений происходит по КАЖДОМУ столбцу, где установлен UNIQUE.

Теперь рассмотрим второй случай.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Я могу создавать строки с одинаковыми значениями series_passport или number_passport. Но пара этих значений должна быть уникальной. То есть во втором случае происходит проверка СОЧЕТАНИЯ значений всех столбцов.

Можно ли использовать ограничение уникальности вместо первичного? В чём особенности?

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

Вариант с использованием UNIQUE:

Вариант с использованием PRIMARY KEY:

Как видим, запись в таблицу добавилась успешно.

И видим, что при создании записи возникает ошибка.

Какие выводы можно сделать:

По факту, вместо PRIMARY KEY можно использовать UNIQUE NOT NULL и Postgres позволяет это сделать, но рекомендуют следовать теории реляционных баз данных и устанавливать первичные ключи.

Выгрузка документов 1С на ТСД

Помимо номенклатуры, на ТСД бывает необходимо выгружать документы. Например, документ для проведения инвентаризации, или заказ для сборки. Работник склада увидит документ на своем ТСД и сможет взять его в работу.

Чтобы отправить нужный документ на терминал, следуйте простой инструкции.

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

Обработка имеет 8 режимов работы

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

При пометке на удаление для окончательного удаления элемента нужно выполнить обработку Удаление помеченных объектов.
При непосредственном удалении элементы удаляются окончательно.

Данная операция достаточно длительная. Может выполняться вплоть до нескольких часов. Стоит с осторожностью подходить к ее выполнению.

Обновление наименований ключей аналитики

Эта обработка позволяет установить наименование ключей в соответствии с реквизитами справочника.

Очень часто меняется наименование какой-либо из аналитик.

Например, наименование партнера, поэтому нужно обновлять названия ключей.

Поиск записей регистров с одинаковыми ключами аналитики

Ключ аналитики — это ресурс регистра сведений. Поэтому по нему не осуществляется контроль уникальности.

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

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

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

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

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

Проверка ссылочной целостности ключей аналитики

Режим выполняет два действия.

1. При отсутствии ссылки в регистре сведений на ключ аналитики. Запись регистра сведений удаляется

2. При ссылке на элемент справочника, который был некорректно удален, то есть представлен в виде «Объект не найден», создается новый элемент справочника и ему присваиваются значения реквизитов из измерений регистра сведений.

Поиск задублированных ключей аналитики

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

Дальнейшую обработку необходимо осуществить на закладке «Поиск и замена значений»

Проверка соответствия измерений реквизитам ключа

Находит ключи, значения ключевых реквизитов которых не соответствуют значениям в измерениях регистра сведений.

Перезаписывает значения измерений регистра сведений из реквизитов ключа аналитики.

Поиск ключей с несоответствующими контрагентами партнерам

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

У справочника контрагент есть реквизит Партнер. Его значение может не соответствовать реквизиту аналитики.

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

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

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

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

Поиск ключей с отсутствующими записями регистра сведений

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

Обработка создает записи регистров сведений по ключам аналитики.

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Как работать с большими пакетами запросов разбираем на примере формирования проводок в 1 c

Оцените статью
Аналитик-эксперт