Медленная работа спр. Номенклатура и Ошибка в логах БД
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Добрый день!
т.к. юзаю АА то обращаюсь в эту ветку.
с утра БД при открытии номеклатуры начала капитально тормозить — несколько минут.
1) в Логах на сервере (Ubuntu 10.04+ postgresql) — на сегодня было больше 20ГБ, файл разрастается прямо на глазах и процесс postmaster (postgresql) грузит проц на 100% постоянно.
2) на самом компьютере иногда вылазит
3) пробовал комментировать в настройках Postgresql escape_string_warning = off, на клиенте начало вылазить
пробовал загружать копии БД «несколькодневней» давности — работает вроде нормально, но логи также пестрят сообщениями из п.1
при загрузке dt файла в локальную версию — проблем не замечено. Но последние 2 дня — ни в какую. ВСе восстановления БД перепробовал как из 1с так и из самой Postgresl/
Подскажите, кто сталкивался хоть с чем-то подобным — как его побороть?
З.Ы. 1) Почему-то проблемы именно со справочником Номенклатуры
2)Работа стоит, работает тока 1 машина, скоро меня повесят.
1. Сделайте тестирование и исправление ИБ с галками реструктуризации и упаковки таблиц.
2. В отладке при открытии Номенклатуры сделать замер производительности для нахождения медленной операции.
3. Можно воспользоваться технологическим журналом
Несколько статей по использованию технологического журнала
1
2
В прикреплении обработка по настройке технологического журнала.
- НастройкаТехнологическогоЖурнала.epf (65.46 КБ)
Большое спасибо за содействие, а то вчера совсем грустно было
Сначала , что есть на сегодня:
проблемы в логах PostgreSQL решаются установкой в postgresql.conf escape_string_warning = off и перезапуском сервера.
Симптомы торможения лечатся так:
Взял бекап на 31.01 — работает нормально, загрузил на сервак
Взял последнюю БД на вчера(2.02) выгрузил все документы через обработку "ВыгрузкаЗагрузкаДанныхXML81.epf", а потом загрузил этой же обработкой в работающую БД от 31.01. Вроде работает. По-крайней мере уже не повесят.
———————————————————————————————————————-
Однако, проблема есть и непонятно почему. Если попробовать выгрузить в dt, загрузить на локальную машину, выгрузить с локалки и загрузить на сервак — опять та же проблема с тормозом номенклатуры. На локалке никаких проблем.
Хочу разобраться почему, чтобы такого не было в каком-то другом месте — т.к. проблема возникла на ровном месте — в БД ничего особенного не менял в эти дни. Вечером сделал восстановление, а утром уже БД в ауте.
1. Тестирование и исправление со всеми галками — не помогает. Также не помогает все доступные средства починки СУБД из 1С и самой СУБД. Также пробовал загрузиться с зеркальной копии диска на момент запуска конфигурации, после загрузки последней БД — такие же проблемы.
2. Да, сделал. тормозит в этом куске кода (СписокПриПолученииДанных), а именно на последнем операторе "Запрос.Выполнить().Выбрать();"
Код не оптимальный и не из стандартной поставки — обсуждался в другой теме — Вывод колонок с ценами в списке номенклатуры.
При этом, в ПН код работает без тормозов, а ВТ уже с тормозами(только на сервере). Почему?
Протрейсить запрос как-то можно? (СУБД PostgreSQL)
3. До технологического журнала вчера дошел, но ещё не знал как его использовать, читаю.
P.S. прошу не забрасывать тему, а все-таки выяснить причину, т.к. снял тока симптомы. Очень напрягает отсутствие явной ошибки.
Новые подробности:
Кажись нашёл из-за чего все началось.
Сегодня был запущен конфигуратор и предприятие, подключенные к тестовой серверной БД.
Игрался с сетевыми подключениями(пытался в винде сделать мост виртуальной сетевушки и реальной) — оборвалась сеть. Понятное дело соединение с серваком оборвалось.
Попробовал сразу переподключиться конфигуратором — говорит, уже есть подключение.
Попробовал загрузить предприятие и открыть Номеклатуру — опа! — появился тормоз!
Осталось выяснить:
1) почему начинает тормозить выборка
2) как это лечить.
P.S. Кстати, загрузка нормального cf-файла с работающей конфой несколькими днями раньше в текущую БД с глюком — результата не дает. Т.е. получается, что глюк возникает в структуре БД, причем такой, что доступными средствами не находится и не исправляется.
Пока только могу помочь советом по оптимизации запроса. Конечно, от запроса лучше избавиться, например, через хранение в кеше цен. В событии СписокПриПолученииДанных() выполнять каждый раз запрос очень не приветствуется.
Этот запрос немного по оптимальней и еще можно избавиться от лишних полей, без которых можно обойтись. Например поля «Наименование» и ЦеныСрезПоследних.ТипЦен можно использовать сразу при обходе результата запроса, а не помещать в запрос; от ТипыЦенПроцентыСкидкиНаценки.ТипНоменклатуры можно отказаться в запросе есть заменитель.
Запрос = Новый Запрос(«ВЫБРАТЬ
| ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
| ЦеныСрезПоследних.ТипЦен,
| ЦеныСрезПоследних.Номенклатура.ТипНоменклатуры КАК ТипНом,
| ЦеныСрезПоследних.Цена КАК Цена,
| ТипыЦенПроцентыСкидкиНаценки.ТипНоменклатуры,
| ТипыЦенПроцентыСкидкиНаценки.ПроцентСкидкиНаценки,
| ЦеныСрезПоследних.Цена + ЦеныСрезПоследних.Цена * ЕСТЬNULL(ТипыЦенПроцентыСкидкиНаценки.ПроцентСкидкиНаценки/100, 1) КАК СкидочнаяЦена,
| &ПоощрительнаяНаименование КАК Наименование
|ИЗ
| РегистрСведений.Цены.СрезПоследних(
| ,
| ТипЦен = &ТипЦен И
| ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) И
| ЕдиницаИзмерения = ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка) И
| Номенклатура В (&МассивТоваров)) КАК ЦеныСрезПоследних
|ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.ТипыЦен.ПроцентыСкидкиНаценки КАК ТипыЦенПроцентыСкидкиНаценки
|ПО
| ТипыЦенПроцентыСкидкиНаценки.Ссылка = &Поощрительная И
| ЦеныСрезПоследних.Номенклатура.ТипНоменклатуры = ТипыЦенПроцентыСкидкиНаценки.ТипНоменклатуры
|»);
МассивНоменклатуры = Новый Массив; // для передачи в параметр запроса
Соответствие = Новый Соответствие; // для заполнения цен в строках табличного поля
Для Каждого Строка из ОформленияСтрок Цикл
МассивНоменклатуры.Добавить(Строка.ДанныеСтроки.Ссылка);
Соответствие.Вставить(Строка.ДанныеСтроки.Ссылка, Строка);
КонецЦикла;
Поощрительная = Справочники.ТипыЦен.НайтиПоНаименованию(«Поощрительная»);
Запрос.УстановитьПараметр(«ТипЦен», Справочники.ТипыЦен.НайтиПоНаименованию(«Розница»));
Запрос.УстановитьПараметр(«Поощрительная», Поощрительная);
Запрос.УстановитьПараметр(«ПоощрительнаяНаименование», Поощрительная.Наименование);
Запрос.УстановитьПараметр(«МассивТоваров», МассивНоменклатуры);
Выборка = Запрос.Выполнить().Выбрать();
Виктор Радько,
Приймите, пожалуйста, мое полное признание Вас как специалиста 1С. (хотя я 1с и не люблю )
Таки заработало с данным запросом без тормозов.
Огромное спасибо!
А относительно кеша что имелось ввиду? Создать массив и в него запихивать цены, а потом по номенклатуре искать в нем?
P.S. 1) А не подскажите, пожалуйста, может где-то можно почитать про оптимизацию запросов и как правильно с точки зрения 1С их составлять?
2) все-таки не могу понять, почему 2 месяца работало без тормозов, а тут начались тормоза причем не в разы, а в десятки раз.
Кеш это глобальная переменная формы списка справочника, которая будет хранить таблицу значений, например с полями Номенклатура, Цена, Скидочная цена. В событии при получении данных будет поиск строк по номенклатуре (поэтому колонку «Номенклатура» таблицы кеша нужно проиндексировать), номенклатура, которая еще не присутствует в таблице кеша добавляется в отдельный массив если в массиве строк больше нуля, то выполняем запрос и заполняем таблицу кеша. Важно если для номенклатурной позиции нет данных все равно ее нужно добавить в таблицу кеша с нулевой ценой.
| Цитата |
|---|
| Александр Тугаенко пишет: все-таки не могу понять, почему 2 месяца работало без тормозов, а тут начались тормоза причем не в разы, а в десятки раз. |
Из-за определнных условий оптимизатор запроса Postgre начал формировать неоптимальный план запроса. Один из вариантов как побороть обновить статистики.
Сопоставить наименования в поступлении с товарами каталога
Часто бывает, что названия одних и тех же товаров в документах продавца и покупателя отличаются. Например, «Белый ноутбук 300E4A» в документе поступления — это «Ноутбук белый» в вашем каталоге. При поступлении товаров СБИС автоматически сопоставляет позиции с товарами каталога.
Если СБИС не нашел товары из поступления в вашем каталоге, позиции будут отмечены серым цветом. Сопоставьте их вручную или добавьте в каталог.
- Убедитесь, что в конфигурации личного кабинета включены расширения «Закупки», «Продажи», «Маркет» и/или «ЕГАИС». В разделе «Бизнес/Закупки/Расходы/Поступления» откройте документ. Если вы получили его по ЭДО, нажмите «Изменить», затем «Поступление».
- Чтобы все несопоставленные позиции отобразились вверху списка, нажмите «Все» и выберите «Несопоставленные».
Словарь сопоставления номенклатуры бэд как отключить
Наверняка каждый сталкивался при загрузке номенклатуры по прайс листу поставщика с проблемой сопоставления номенклатуры. Как итог при загрузке прайсов поставщиков, по мимо загрузки самого прайса, необходимо производить ручное сопоставление с номенклатурой базы, которая введена вами, то есть каждую позицию необходимо сопоставлять.

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

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

2. В разделе номенклатуры «Дополнительная информация» снять галочку с пункта «Номенклатура поставщика»

После данных действия сопоставление номенклатуры будет работать в автоматическом режиме, что бы это проверить идем в раздел «Закупки»далее «Поставщики» и переходим на вкладку «Прайс-лист»

Собственно здесь можно пробовать загрузить номенклатуру, а именно нажимаем кнопку «загрузить из внешнего файла» далее заполнить необходимые поля и нажать далее

После этого появиться окно с номенклатурой, как видно из фото позиции сопоставились.

так же заполнились цены поставщика, которые в дальнейшем можно использовать при установке цен.
Существует соответственно и минус данной загрузки, при снятии галочки «Номенклатура поставщика», она так же пропадет у контрагента, но основная задача выполняется и теперь можно не выполнять двойную работу по сопоставлению.
Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download


Новые возможности обмена электронными документами в «1С:БЭД»
Новые возможности обмена электронными документами в «1С:БЭД»

Фирма «1С» обновила библиотеку электронных документов, в которой получили развитие функциональные блоки сопоставления номенклатуры и механизм поддержки сторонних форматов электронных документов.
Что нового в части сопоставления номенклатуры?
Разработчики сервиса рассказали о существенной доработке функционала «Помощника сопоставления номенклатуры». Ранее пользователи при поступлении входящего электронного документа могли указать соответствие между номенклатурной позицией в электронном документе и номенклатурной позицией в справочнике конфигурации. Если позиция для сопоставления отсутствовала, то ее можно было создать самостоятельно.
Теперь в этой части появилось больше свободы. Новая версия библиотеки позволяет:
создавать номенклатуру по данным контрагента. В этом случае создается новый элемент справочника, в котором заполнены реквизиты на основании данных электронного документа. Если данных окажется недостаточно, чтобы сразу сохранить новый элемент, то открывается новая карточка, в которой нужно будет заполнить недостающую информацию;
загружать данные из «1С:Номенклатура», если отправитель и получатель электронного документа используют этот сервис. Номенклатурную позицию можно выбрать из справочника сервиса;
воспользоваться инструментом «Найдено в моей базе», который автоматически подберет варианты сопоставления.

Автоматический подбор вариантов сопоставления номенклатуры
Таким образом, заявленные нововведения позволяют сделать менее трудозатратным один из наиболее сложных процессов в области ЭДО – обработку входящих электронных документов. Кроме возможностей сопоставлять номенклатуру силами пользователя, на себя обращает внимание новый механизм «Найдено в моей базе». Очевидно, что через какое-то время в связке с «1С:Номенклатурой» это станет основным инструментом обработки входящих документов.
Сторонние форматы электронных документов
Еще одна точка приложения сил для развития ЭДО – это расширение перечня форматов электронных документов. Тут «1С» применяет две базовых стратегии: расширение перечня поддерживаемых сторонних форматов документов и технологию разработки собственных форматов.
Отказ от бумажного обмена происходит неуклонно, и потребность в кастомизации типовых конфигураций этой части будет расти. Фирма «1С» анонсировала методику реализации в прикладных решениях поддержки кастомных форматов электронных документов. Методика предполагает возможности формирования, визуализации и выполнения прочих стандартных действий с электронными документами, сформированными по форматам, необходимым в прикладном решении. Данное решение пригодится, когда нужно передавать электронные аналоги документов, имеющих отраслевую специфику, или не реализованных в «Библиотеке электронных документов».
Что касается новых форматов электронных документов, уже вошедших в новую редакцию «1С:БЭД» 1.4.1, то в нее в последней редакции включены:
Краткий обзор возможностей БЭД 1.4.1
Создать по данным контрагента – создать новый элемент справочника, заполнив его на основании данных электронного документа. Если данных недостаточно, чтобы сразу сохранить новый элемент, то будет открыта карточка нового объекта, в которой нужно будет дозаполнить недостающую информацию.
Загрузить из 1С:Номенклатура – если отправитель и получатель электронного документа используют сервис «1С:Номенклатура», то возможна автоматическая загрузка нового элемента из данного сервиса.
Подобрать из 1С:Номенклатура – если получатель электронного документа использует сервис «1С:Номенклатура», то возможен подбор произвольного элемента из сервиса.
Найдено в моей базе – посмотреть и выбрать один из автоматически подобранных вариантов сопоставления. В зависимости от конфигурации может поддерживаться массовый режим создания номенклатуры.
Поддержка сторонних форматов
По указанным документам можно видеть ту же информацию, что и по документам, сформированным из 1С, использовать отборы, сортировку и другие возможности. Кроме того, для стандартного формата счета от Тензора поддержана возможность отражения в учете в программе 1С. Список поддерживаемых форматов планируется расширять.
Технология разработки собственных форматов
Разработана методика реализации в прикладных решениях поддержки кастомных форматов электронных документов. С помощью данной методики можно добавить возможность формирования, визуализации и выполнения прочих стандартных действий с электронными документами, сформированными по форматам, необходимым в прикладном решении. Она может быть полезна в случаях необходимости передачи электронных аналогов документов, имеющих отраслевую специфику и/или не реализованных в Библиотеке электронных документов.
Чтобы пользователи могли работать с новым форматом в отраслевом решении, достаточно его поддержать согласно инструкции и опубликовать новую версию прикладного решения.
Чтобы в прикладном решении, в которое встроена Библиотека электронных документов, можно было принять, отобразить и подписать входящий документ, составленный по новому формату, достаточно написать правила визуализации и передать их на аудит в 1С и публикацию.
Медленная работа спр. Номенклатура и Ошибка в логах БД
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
2) на самом компьютере иногда вылазит
3) пробовал комментировать в настройках Postgresql escape_string_warning = off, на клиенте начало вылазить
З.Ы. 1) Почему-то проблемы именно со справочником Номенклатуры
2)Работа стоит, работает тока 1 машина, скоро меня повесят.
1. Сделайте тестирование и исправление ИБ с галками реструктуризации и упаковки таблиц.
2. В отладке при открытии Номенклатуры сделать замер производительности для нахождения медленной операции.
3. Можно воспользоваться технологическим журналом
Несколько статей по использованию технологического журнала
1
2
В прикреплении обработка по настройке технологического журнала.
3. До технологического журнала вчера дошел, но ещё не знал как его использовать, читаю.
P.S. прошу не забрасывать тему, а все-таки выяснить причину, т.к. снял тока симптомы. Очень напрягает отсутствие явной ошибки.
Новые подробности:
Кажись нашёл из-за чего все началось.
Осталось выяснить:
1) почему начинает тормозить выборка
2) как это лечить.
Пока только могу помочь советом по оптимизации запроса. Конечно, от запроса лучше избавиться, например, через хранение в кеше цен. В событии СписокПриПолученииДанных() выполнять каждый раз запрос очень не приветствуется.
Этот запрос немного по оптимальней и еще можно избавиться от лишних полей, без которых можно обойтись. Например поля «Наименование» и ЦеныСрезПоследних.ТипЦен можно использовать сразу при обходе результата запроса, а не помещать в запрос; от ТипыЦенПроцентыСкидкиНаценки.ТипНоменклатуры можно отказаться в запросе есть заменитель.
А относительно кеша что имелось ввиду? Создать массив и в него запихивать цены, а потом по номенклатуре искать в нем?
P.S. 1) А не подскажите, пожалуйста, может где-то можно почитать про оптимизацию запросов и как правильно с точки зрения 1С их составлять?
2) все-таки не могу понять, почему 2 месяца работало без тормозов, а тут начались тормоза причем не в разы, а в десятки раз.
Кеш это глобальная переменная формы списка справочника, которая будет хранить таблицу значений, например с полями Номенклатура, Цена, Скидочная цена. В событии при получении данных будет поиск строк по номенклатуре (поэтому колонку «Номенклатура» таблицы кеша нужно проиндексировать), номенклатура, которая еще не присутствует в таблице кеша добавляется в отдельный массив если в массиве строк больше нуля, то выполняем запрос и заполняем таблицу кеша. Важно если для номенклатурной позиции нет данных все равно ее нужно добавить в таблицу кеша с нулевой ценой.
| Цитата |
|---|
| Александр Тугаенко пишет: все-таки не могу понять, почему 2 месяца работало без тормозов, а тут начались тормоза причем не в разы, а в десятки раз. |
Из-за определнных условий оптимизатор запроса Postgre начал формировать неоптимальный план запроса. Один из вариантов как побороть обновить статистики.
Новые возможности обмена электронными документами в «1С:БЭД»

Фирма «1С» обновила библиотеку электронных документов, в которой получили развитие функциональные блоки сопоставления номенклатуры и механизм поддержки сторонних форматов электронных документов.
Что нового в части сопоставления номенклатуры?
Разработчики сервиса рассказали о существенной доработке функционала «Помощника сопоставления номенклатуры». Ранее пользователи при поступлении входящего электронного документа могли указать соответствие между номенклатурной позицией в электронном документе и номенклатурной позицией в справочнике конфигурации. Если позиция для сопоставления отсутствовала, то ее можно было создать самостоятельно.
Теперь в этой части появилось больше свободы. Новая версия библиотеки позволяет:
создавать номенклатуру по данным контрагента. В этом случае создается новый элемент справочника, в котором заполнены реквизиты на основании данных электронного документа. Если данных окажется недостаточно, чтобы сразу сохранить новый элемент, то открывается новая карточка, в которой нужно будет заполнить недостающую информацию;
загружать данные из «1С:Номенклатура», если отправитель и получатель электронного документа используют этот сервис. Номенклатурную позицию можно выбрать из справочника сервиса;
воспользоваться инструментом «Найдено в моей базе», который автоматически подберет варианты сопоставления.

Автоматический подбор вариантов сопоставления номенклатуры
Таким образом, заявленные нововведения позволяют сделать менее трудозатратным один из наиболее сложных процессов в области ЭДО – обработку входящих электронных документов. Кроме возможностей сопоставлять номенклатуру силами пользователя, на себя обращает внимание новый механизм «Найдено в моей базе». Очевидно, что через какое-то время в связке с «1С:Номенклатурой» это станет основным инструментом обработки входящих документов.
Сторонние форматы электронных документов
Еще одна точка приложения сил для развития ЭДО – это расширение перечня форматов электронных документов. Тут «1С» применяет две базовых стратегии: расширение перечня поддерживаемых сторонних форматов документов и технологию разработки собственных форматов.
Отказ от бумажного обмена происходит неуклонно, и потребность в кастомизации типовых конфигураций этой части будет расти. Фирма «1С» анонсировала методику реализации в прикладных решениях поддержки кастомных форматов электронных документов. Методика предполагает возможности формирования, визуализации и выполнения прочих стандартных действий с электронными документами, сформированными по форматам, необходимым в прикладном решении. Данное решение пригодится, когда нужно передавать электронные аналоги документов, имеющих отраслевую специфику, или не реализованных в «Библиотеке электронных документов».
Что касается новых форматов электронных документов, уже вошедших в новую редакцию «1С:БЭД» 1.4.1, то в нее в последней редакции включены: