При формировании отчета 1с ошибка недостаточно памяти

Ошибка «Недостаточно памяти» в 1С 8.3 и 8.2 является не такой уж и редкой. Ее можно встретить и в конфигураторе (например, при сравнении конфигураций), а так же в режиме «1С:Предприятие» при выполнении трудоемких обработок: например при записи большого файла формата base64.

недостаточно памяти

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

Все дело в том, что в 32-х разрядных операционных системах по умолчанию 2 ГигаБайта на различные программы и столько же для операционной системы. В 64-х разрядных ОС выделяемый на приложения объем памяти составляет уже 4 ГигаБайта.

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

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

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.

Связаться с нами можно по телефону +7 499 350 29 00.

Услуги и цены можно увидеть по ссылке.

Будем рады помочь Вам!

Перед вами отобразится поиск программ. Выберите ту, что называется «cmd».

cmd

Так же командную строку можно открыть при помощи комбинации горячих клавиш Windows + R.

пуск - выполнить

В открывшемся окне наберите следующую команду и так же нажмите «Enter»:

bcdedit /set increaseuserva 3200

установка размера

В данном случае вы увеличите объем адресной памяти до 3200 МегаБайт.

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

После того, как у вас все получилось, настоятельно рекомендуется восстановить прежний объем адресной памяти. Данная мера временная, так как при выделении памяти на приложения, у операционной системы ее становится меньше. За счет этого возможно нарушение стабильности Windows.

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

bcdedit /deletevalue increaseuserva

восстановления адресной памяти

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

Александр Рудницкий

Александр Рудницкий


Программист 1С компании CorpSoft24

Ошибка системы «1С: Предприятие 8.3» из-за нехватки памяти — постоянный спутник администратора 1С. Разбираемся, из-за чего они возникают, и рассматриваем пример диагностики одного подобного эпизода из практики администрирования сервера 1С.

Природа проблемы

Сообщение «Недостаточно памяти» — одна из самых часто встречающихся ошибок при работе с 1С: Предприятие версии 8.3 и выше. Она происходит по самым разным причинам — от обработки системой нескольких массивных файлов и загрузки больших объёмов данных, до обновления ПО и перегрузки ресурсов при формирования сложных отчётов.

Она не так критична при возникновении на клиентском компьютере, а вот если сообщение об ошибке выдает сервер 1С, нужно отнестись к этому максимально внимательно. Это тот самый случай, когда очень важно установить правильный «диагноз» — то есть решения не будет, пока ответственный администратор не распознает источник проблемы, не поймёт её природу.

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

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

Инцидент

Поступило обращение со следующей ошибкой:

Смотрим журнал регистрации, там так же выводится ошибка с пояснением о нехватке памяти на сервере:

Иллюстрация: нехватка памятиИллюстрация: нехватка памяти

Настроив технологический журнал (ТЖ) системы 1С с событием EXCP — EXCPCNTX обнаруживаем запись:

Ошибка СУБД out of memory for query result

То есть, обе ошибки сообщают о проблеме объёма памяти, на основании чего нашим главным подозреваемым становится код конфигурации (возможно наличие неоптимальных запросов).

Находим код конфигурации, вызывающий ошибку.

В журнале регистрации указан следующий код:

{ОбщийМодуль.ДокументооборотСКОВызовСервера.Модуль(22)}: Ошибка при вызове метода контекста (Получить)
по причине:

Недостаточно памяти для получения результата запроса к базе данных

Открываем конфигуратор и переходим в указанный модуль к указанному номеру строки кода:

Иллюстрация: нехватка памяти

Строка, на которой произошла ошибка:

ВнешниеОбъектыХранилище = Константы.ДокументооборотСКонтролирующимиОрганами_ВнешнийМодуль;
ДвоичныеДанныеОбработки = ВнешниеОбъектыХранилище.Получить().Получить();

Смотрим тип объекта (константы), к которой идёт обращение:

Иллюстрация: нехватка памяти

Итак, в конфигурации есть константа:

ДокументооборотСКонтролирующимиОрганами_ВнешнийМодуль

Она хранит в базе что-то неструктурированное (двоичные данные), что может занимать значительный объём памяти.

Проверяем, какой объем данных фактически занимает константа. Для этого узнаем имя таблицы хранения в базе PostgreSQL — таблица «_Const10013», индекс «_Const10013_ByKey».

Иллюстрация: нехватка памяти

Узнаем размер таблиц «Const10013», «_Const10013_ByKey» на диске:

На диске таблица занимает всего 4688 Кб = 4,6 Мб. Размер является незначительным, значит, причина не в константе.

Обнаруживаем, что кластер 1С является 32-разрядным:

32-разрядный кластер 1С имеет ограничение примерно в 3.8 Гб, при достижении которого происходит падение процесса. В режиме отсутствия нагрузки rphost занял 3,2 Гб, что близко к порогу падения. Подобные инциденты будут происходить в любой момент времени.

Внесены изменения:

  • В кластере серверов 1С «Интервал превышения допустимого объёма памяти процессов» = 300. Настройка не избавляет от ошибки, но необходима для снижения частоты возникновения ошибки.
  • В планировщике Windows настроен перезапуск службы 1С; такими образом освобождается виртуальное адресное пространство в памяти, создаётся новый рабочий процесс.

Настройка также не гарантирует от ошибки, но снижает вероятность её возникновения.

Для предотвращения повторной ошибки следует:

  • Сменить 32-разрядный кластер серверов 1С на 64-разрядный.
  • Так как на сервере используется 14 ядер процессора, необходимо осуществить переход на платформенные лицензии 1С КОРП для снятия ограничений по настройкам и обеспечения возможностей для гибкой настройки распределения памяти сервера.

Другие варианты

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

Источником проблемы также может быть недостаток пространства на жестком диске сервера. Здесь решение будет зависеть от устройство сервера или кластера, но здесь также могут помочь и перезапуск сервера, и наращивание ёмкости диска (или освобождение существующего пространства), а также оптимизация запросов или обновление версии ПО системы.

Столкнулись с ситуацией, при обновлении программы 1С, компьютер выдает ошибку «Недостаточно памяти». Обновление идет очень медленно и доходя до определенного процента выполнения появляется ошибка.

Содержание

  • Ошибка Недостаточно памяти и причины ее появления
  • Как исправить ошибку в 1С Недостаточно памяти

Ошибка Недостаточно памяти и причины ее появления

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

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

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

Подробнее о параметрах компьютера для работы в 1С

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

  • в 32-х разрядных операционных системах по умолчанию выделено 2 Гб на различные программы и столько же для операционной системы,
  • в 64-х разрядных операционных системах — объем памяти составляет уже 4 Гб.

При работе 1С и выполнения операции, можно через Диспетчер задач следить за процессом загрузки процессора и за свободным количеством памяти. В нашем случае, при обновлении это цифра приближалась к нулю и в этот момент возникала ошибка «Недостаточно памяти». Запустить Диспетчер задач можно нажатием клавиш Ctrl+Alt+Del и открыв вкладку Быстродействие, следить за данными показателями.

Таким образом, нам необходимо увеличить размер выделяемой адресной памяти для приложений (в том числе и 1С). Это можно сделать двумя способами: перейти с 32-х разрядной системы на 64-х разрядную или увеличить выделяемое по умолчанию количество адресной памяти. Первый вариант является более правильным, но в силу некоторых причин он бывает невозможен, поэтому рассмотрим второй вариант решения проблемы.

Для увеличения размер адресной памяти, необходимо:

  1. Перейти в кнопку Пуск и в строке поиска ввести cmd. В списке найденных программ выбираем cmd и таким образом запустить командную строку.Командную строку можно открыть также при помощи комбинации горячих клавиш Windows + R, указав в строке — cmd.
  2. В командной строке вводим bcdedit/set increaseuserva 3100, где 3100 — размер желаемой адресной памяти. Данная цифра взята для примера и увеличивать ограничение размера адресной памяти нужно аккуратно и постепенно, возможно небольшое увеличение будет достаточно для работы программы.
  3. Перезагружаем компьютер и попробуйте выполнить действие в 1С, при котором возникала ошибка.
  4. Если все прошло успешно и операция вызывающая ошибку повторяется не так часто, рекомендуется вернуть размер адресной памяти к значению по умолчанию с помощью команды bcdedit/deletevalue increaseuserva.

См. также:

  • Неверный формат хранилища данных 1С 8.3: как исправить
  • Ошибка формата потока 1С 8.3: как исправить
  • Ошибка СУБД: файл базы данных поврежден в 1С 8.3
  • Не найден файл внешней компоненты в 1С 8.3: как исправить
  • Ошибка работы с интернет Удаленный узел не прошел проверку в 1С: как исправить

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

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

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

При работе с программой 1С может выскакивать ошибка 1С: Недостаточно памяти». Появление подобной ошибки 1С, как правило, возникает:

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

Во всех вариантах причиной неполадок является малый объем оперативной (физической) памяти, которая зарезервирована под работу конкретной программы или отдельных ее компонентов.
Так же следует обратить внимание на рекомендованный объем оперативной памяти для конкретной конфигурации. Так, например, для конфигураций «1С: Бухгалтерия 8, ред.3.0», «1С: Управление торговлей 8, ред. 11», «1С: Комплексная автоматизация 8, ред. 2.4», «1С: ERP Управление предприятием 2, ред. 2.4» рекомендуемый объем памяти – 4 Гб.

  1. Принудительное увеличение объема оперативной памяти.

Для этих целей необходимо через опцию WINDOWS «ПУСК», в режиме поиска ввести (на английском языке) — «cmd». После отображения командной строки – наберите словосочетание «bcdedit/set increaseuserva 3100». При этом последний параметр указывает на размер физической памяти, выделяемой под используемую программу. Возможно, таких циклов корректировки необходимо будет произвести несколько раз, постепенно увеличивая объем доступной оперативной памяти (3100, 3200, 3300 и т.д.) до полного устранения данной ошибки 1С: «Недостаточно памяти».

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

  1. Самым оптимальным решением будет переход с 32-х на 64-х разрядную операционную систему, естественно, при наличии такой аппаратной возможности.

Данный способ предоставляет программе 1С доступ к 4 Гб оперативной памяти, в то время, как даже при наращивании памяти в 32-х разрядной системе до 8 Гб – корректный доступ будет только к 2 Гб.

  

Pereliviya

09.10.12 — 09:46

День добрый!

Помогите оптимизировать запрос.

При формировании отчета вылетает «Недостаточно памяти».

Если ставить Отбор по определенной номенклатуре, то работает.

На чем рабочая база не скажу. Но тестовая, на которой мне дали тестировать отчет — файловая. Платформа 8.2. Конфигурация Комплексная Автоматизация 1.1.14.1.

Заказчик хочет все и сразу, как говорится.

В одном отчете объединить несколько данных: и остатки в разрезе филиалов и расходы по филиалам, и резерв, и товар в пути с разбивкой по датам (колонкам), И Общий расход с разбивкой по датам (колонкам) и т.д.

Объем данных конечно большой, но может дело в моем запросе….

Отчет написан на СКД.

Вот мое творение: http://files.mail.ru/5BNUKJ

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

Меня интересует это из-за большого объема информации ошибка или из-за некорректного запроса?

  

mikecool

1 — 09.10.12 — 09:48

неправильно проверять творение на другом типу Субд

и где фотка?

  

mikecool

2 — 09.10.12 — 09:49

«Недостаточно памяти» просто может быть оттого, что ограничили память на процесс на скуле, да и раб. процесс у 1С имеет всего 2 гига для работы

  

aleks-id

3 — 09.10.12 — 09:50

>>раб. процесс у 1С имеет всего 2 гига для работы

я думал все на х64 давно перешли…

  

mikecool

4 — 09.10.12 — 09:51

(3) а в 64 версии рабочие процессы сервера 1с не продолжают юзать по 2 гиг?

  

Нуф-Нуф

5 — 09.10.12 — 09:52

давай запрос

  

Maxus43

6 — 09.10.12 — 09:52

(4) откуда дровишки?

  

Pereliviya

7 — 09.10.12 — 09:54

Пожалуйста, запрос:

ВЫБРАТЬ

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК НачальныйОстаток,

   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КонечныйОстаток

ПОМЕСТИТЬ Остатки

ИЗ

   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыВРезервеНаСкладахОстатки.Номенклатура,

   СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток) КАК Резерв

ПОМЕСТИТЬ РезервЗ

ИЗ

   РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&КонецПериода {(&КонецПериода)}, ) КАК ТоварыВРезервеНаСкладахОстатки

СГРУППИРОВАТЬ ПО

   ТоварыВРезервеНаСкладахОстатки.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоПриход) КАК ОбщийПриход

ПОМЕСТИТЬ ОбщийПриходЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПриходныйОрдерНаТовары)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК ОбщийРасход,

   ТоварыНаСкладахОбороты.ПериодМесяц КАК ПоМесяцам

ПОМЕСТИТЬ ОбщийРасходЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура,

   ТоварыНаСкладахОбороты.ПериодМесяц

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК РасходКемерово

ПОМЕСТИТЬ РасходКемеровоЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   ТоварыНаСкладахОбороты.Склад В ИЕРАРХИИ(&ФилиалКемерово)

   И (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК РасходТомск

ПОМЕСТИТЬ РасходТомскЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   ТоварыНаСкладахОбороты.Склад В ИЕРАРХИИ(&ФилиалТомск)

   И (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК РасходНК

ПОМЕСТИТЬ РасходНКЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   ТоварыНаСкладахОбороты.Склад В ИЕРАРХИИ(&ФилиалНК)

   И (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК ОстатокКемерово

ПОМЕСТИТЬ ОстатокКемеровоЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты

ГДЕ

   ТоварыНаСкладахОстаткиИОбороты.Склад В ИЕРАРХИИ(&ФилиалКемерово)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК ОстатокТомск

ПОМЕСТИТЬ ОстатокТомскЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты

ГДЕ

   ТоварыНаСкладахОстаткиИОбороты.Склад В ИЕРАРХИИ(&ФилиалТомск)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК ОстатокНК

ПОМЕСТИТЬ ОстатокНКЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты

ГДЕ

   ТоварыНаСкладахОстаткиИОбороты.Склад В ИЕРАРХИИ(&ФилиалНК)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОстаткиИОбороты.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ЗаказыПоставщикамОстатки.Номенклатура,

   СУММА(ЗаказыПоставщикамОстатки.КоличествоОстаток) КАК КолТоварВПути,

   НАЧАЛОПЕРИОДА(ЗаказыПоставщикамОстатки.ЗаказПоставщику.Дата, ДЕНЬ) КАК ТоварВПути

ПОМЕСТИТЬ ТоварВПутиЗ

ИЗ

   РегистрНакопления.ЗаказыПоставщикам.Остатки(&КонецПериода {(&КонецПериода)}, ) КАК ЗаказыПоставщикамОстатки

ГДЕ

   ЗаказыПоставщикамОстатки.КоличествоОстаток <> 0

СГРУППИРОВАТЬ ПО

   ЗаказыПоставщикамОстатки.Номенклатура,

   НАЧАЛОПЕРИОДА(ЗаказыПоставщикамОстатки.ЗаказПоставщику.Дата, ДЕНЬ)

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ЦеныНоменклатурыСрезПоследних.Номенклатура,

   СУММА(ЦеныНоменклатурыСрезПоследних.Цена) КАК ЦенаЗакупа

ПОМЕСТИТЬ ЦенаЗакупаЗ

ИЗ

   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода {(&КонецПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних

ГДЕ

   ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦенЗакупа

СГРУППИРОВАТЬ ПО

   ЦеныНоменклатурыСрезПоследних.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   ЦеныНоменклатурыСрезПоследних.Номенклатура,

   СУММА(ЦеныНоменклатурыСрезПоследних.Цена) КАК ЦенаРозницы

ПОМЕСТИТЬ ЦенаРозницыЗ

ИЗ

   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода {(&КонецПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних

ГДЕ

   ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦенРозница

СГРУППИРОВАТЬ ПО

   ЦеныНоменклатурыСрезПоследних.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

   Остатки.Номенклатура,

   СУММА(ЕСТЬNULL(Остатки.НачальныйОстаток, 0)) КАК НачальныйОстаток,

   СУММА(ЕСТЬNULL(Остатки.КонечныйОстаток, 0)) КАК КонечныйОстаток,

   СУММА(ЕСТЬNULL(ОбщийПриходЗ.ОбщийПриход, 0)) КАК ОбщийПриход,

   СУММА(ЕСТЬNULL(ОбщийРасходЗ.ОбщийРасход, 0)) КАК ОбщийРасход,

   ОбщийРасходЗ.ПоМесяцам,

   СУММА(ЕСТЬNULL(ОстатокКемеровоЗ.ОстатокКемерово, 0)) КАК ОстатокКемерово,

   СУММА(ЕСТЬNULL(ОстатокНКЗ.ОстатокНК, 0)) КАК ОстатокНК,

   СУММА(ЕСТЬNULL(ОстатокТомскЗ.ОстатокТомск, 0)) КАК ОстатокТомск,

   СУММА(ЕСТЬNULL(РасходКемеровоЗ.РасходКемерово, 0)) КАК РасходКемерово,

   СУММА(ЕСТЬNULL(РасходНКЗ.РасходНК, 0)) КАК РасходНК,

   СУММА(ЕСТЬNULL(РасходТомскЗ.РасходТомск, 0)) КАК РасходТомск,

   СУММА(ЕСТЬNULL(РезервЗ.Резерв, 0)) КАК Резерв,

   СУММА(ЕСТЬNULL(ТоварВПутиЗ.КолТоварВПути, 0)) КАК КолТоварВПути,

   ТоварВПутиЗ.ТоварВПути,

   СУММА(ЕСТЬNULL(ЦенаЗакупаЗ.ЦенаЗакупа, 0)) КАК ЦенаЗакупа,

   СУММА(ЕСТЬNULL(ЦенаРозницыЗ.ЦенаРозницы, 0)) КАК ЦенаРозницы,

   МАКСИМУМ(Остатки.Номенклатура.ОтветственныйМенеджерЗаПокупки) КАК ОтветственныйМенеджерЗаПокупки,

   МАКСИМУМ(Остатки.Номенклатура.ОсновнойПоставщик) КАК ОсновнойПоставщик

ИЗ

   Остатки КАК Остатки

       ПОЛНОЕ СОЕДИНЕНИЕ ЦенаРозницыЗ КАК ЦенаРозницыЗ

       ПО Остатки.Номенклатура = ЦенаРозницыЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ ЦенаЗакупаЗ КАК ЦенаЗакупаЗ

       ПО Остатки.Номенклатура = ЦенаЗакупаЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ ТоварВПутиЗ КАК ТоварВПутиЗ

       ПО Остатки.Номенклатура = ТоварВПутиЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ ОстатокКемеровоЗ КАК ОстатокКемеровоЗ

       ПО Остатки.Номенклатура = ОстатокКемеровоЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ ОстатокНКЗ КАК ОстатокНКЗ

       ПО Остатки.Номенклатура = ОстатокНКЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ ОстатокТомскЗ КАК ОстатокТомскЗ

       ПО Остатки.Номенклатура = ОстатокТомскЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ РасходНКЗ КАК РасходНКЗ

       ПО Остатки.Номенклатура = РасходНКЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ РасходТомскЗ КАК РасходТомскЗ

       ПО Остатки.Номенклатура = РасходТомскЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ ОбщийРасходЗ КАК ОбщийРасходЗ

       ПО Остатки.Номенклатура = ОбщийРасходЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ РасходКемеровоЗ КАК РасходКемеровоЗ

       ПО Остатки.Номенклатура = РасходКемеровоЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ ОбщийПриходЗ КАК ОбщийПриходЗ

       ПО Остатки.Номенклатура = ОбщийПриходЗ.Номенклатура

       ПОЛНОЕ СОЕДИНЕНИЕ РезервЗ КАК РезервЗ

       ПО Остатки.Номенклатура = РезервЗ.Номенклатура

СГРУППИРОВАТЬ ПО

   Остатки.Номенклатура,

   ОбщийРасходЗ.ПоМесяцам,

   ТоварВПутиЗ.ТоварВПути

  

mikecool

8 — 09.10.12 — 09:54

+4 Основным преимуществом 64-разрядного сервера «1С:Предприятия 8.1» является возможность использования практически неограниченного адресного пространства, выделяемого рабочему процессу.

уже не так )) http://www.1c.ru/news/info.jsp?id=6554

  

Живой Ископаемый

9 — 09.10.12 — 09:56

2(8) Надо было сказать: Я тот «Рип Ван Винкль»

  

saaken

10 — 09.10.12 — 10:05

убери полное соединение

  

Pereliviya

11 — 09.10.12 — 10:08

(10) в моем случае нужно полное соединение, НО, если поставить левое, все та же проблема. Хотя….. ща попробую внутреннее поставить…

  

Aprobator

12 — 09.10.12 — 10:09

(7) не надо сгруппировать и сумма при работе с виртуальными таблицами.

  

mikecool

13 — 09.10.12 — 10:10

(9) :)

  

Aprobator

14 — 09.10.12 — 10:11

вот это

......

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    СУММА(ЦеныНоменклатурыСрезПоследних.Цена) КАК ЦенаРозницы
ПОМЕСТИТЬ ЦенаРозницыЗ
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода {(&КонецПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
    ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦенРозница

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура
;
.....

в мемориз — однозначно. Во первых какая еще сумма у регистра сведений? Во вторых условие в праметры виртуальной таблицы.

  

Axel2009

15 — 09.10.12 — 10:12

из 9 запросов к ТоварыНаСкладах необходимо сделать один

  

Aprobator

16 — 09.10.12 — 10:13

все условия какие только можно в параметры виртуальных таблиц.

  

Pereliviya

17 — 09.10.12 — 10:16

учитываю все рекомендациии…. ща пробую все условия внуть вирт таблице установить и убрать группировки… сделаю. отпишусь.

  

Aprobator

18 — 09.10.12 — 10:16

(15) + 100500 сначала все по условию по периоду выбирается в ВТ. А потом уже из нее по условиям раскладывается куда надо.

  

Axel2009

19 — 09.10.12 — 10:18

+ в данном случае полное объединение лучше сразу было оформить через объединить все. тогда полное соединение отработает.

а вот это

ВЫБРАТЬ

   Остатки.Номенклатура,

будет NULL возвращать если нет остатков по номенклатуре. запрос отработает некорректно

  

Axel2009

20 — 09.10.12 — 10:18

(19)+ тогда КАК полное соединение отработает.

  

ptiz

21 — 09.10.12 — 10:21

(0) Зачем тебе группировкам по дням в ТоварВПути3, если ты её не используешь?

  

Pereliviya

22 — 09.10.12 — 10:26

(21) группировку по дням использую в СКД настройках

(16) установила все условия во вирт.таблицах — не помогло.

(19) изначально так и работало через объединение, но все равно было недостаточно памяти. Переделала на соединение для проверки, но итог один.

  

prog01

23 — 09.10.12 — 10:28

(0)какая полатформа?

Ошибка загрузки документа.

по причине:

Ошибка преобразования данных XDTO:

НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/schema}denyIncompleteValues    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType

@

  

ptiz

24 — 09.10.12 — 10:31

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

У тебя все данные умножаются на кол-во дней.

  

Pereliviya

25 — 09.10.12 — 10:32

(23) платформа 8.2.15.318

  

Pereliviya

26 — 09.10.12 — 10:33

(19) вот самый первый запрос через объединение

ВЫБРАТЬ

   ИтогТаблицы.Номенклатура КАК Номенклатура,

   ИтогТаблицы.Номенклатура.ВхождениеВМатрицу КАК ВхождениеВМатрицу,

   ИтогТаблицы.НачальныйОстаток КАК НачальныйОстаток,

   ИтогТаблицы.ПриходОбщий КАК ПриходОбщий,

   ИтогТаблицы.РасходОбщий КАК РасходОбщий,

   ИтогТаблицы.РасходКемерово КАК РасходКемерово,

   ИтогТаблицы.РасходНК КАК РасходНК,

   ИтогТаблицы.РасходТомск КАК РасходТомск,

   ИтогТаблицы.ОстатокКемерово КАК ОстатокКемерово,

   ИтогТаблицы.ОстатокНК КАК ОстатокНК,

   ИтогТаблицы.ОстатокТомск КАК ОстатокТомск,

   ИтогТаблицы.КонечныйОстаток КАК КонечныйОстаток,

   ИтогТаблицы.Резерв КАК Резерв,

   ИтогТаблицы.Номенклатура.ОтветственныйМенеджерЗаПокупки КАК ОтветственныйМенеджерЗаПокупки,

   ИтогТаблицы.Номенклатура.ОсновнойПоставщик КАК ОсновнойПоставщик,

   ИтогТаблицы.ЦенаЗакупа КАК ЦенаЗакупа,

   ИтогТаблицы.ЦенаРозница КАК ЦенаРозница,

   ИтогТаблицы.ТоварВПути КАК ТоварВПути,

   ИтогТаблицы.КолТоварвПути КАК КолТоварвПути,

   ИтогТаблицы.ПоМесяцам КАК ПоМесяцам

ИЗ

   (ВЫБРАТЬ

       ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,

       СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК НачальныйОстаток,

       СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КонечныйОстаток,

       0 КАК Резерв,

       0 КАК ПриходОбщий,

       0 КАК РасходОбщий,

       0 КАК РасходКемерово,

       0 КАК РасходТомск,

       0 КАК РасходНК,

       0 КАК ОстатокКемерово,

       0 КАК ОстатокНК,

       0 КАК ОстатокТомск,

       0 КАК ЦенаЗакупа,

       0 КАК ЦенаРозница,

       NULL КАК ПоМесяцам,

       NULL КАК ТоварВПути,

       0 КАК КолТоварвПути

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты

   

   СГРУППИРОВАТЬ ПО

       ТоварыНаСкладахОстаткиИОбороты.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ТоварыВРезервеНаСкладахОстатки.Номенклатура,

       0,

       0,

       СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток),

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&КонецПериода {(&КонецПериода)}, ) КАК ТоварыВРезервеНаСкладахОстатки

   

   СГРУППИРОВАТЬ ПО

       ТоварыВРезервеНаСкладахОстатки.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ТоварыНаСкладахОборотыПриход.Номенклатура,

       0,

       0,

       0,

       СУММА(ТоварыНаСкладахОборотыПриход.КоличествоПриход),

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Регистратор, ) КАК ТоварыНаСкладахОборотыПриход

   ГДЕ

       (ТоварыНаСкладахОборотыПриход.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

               ИЛИ ТоварыНаСкладахОборотыПриход.Регистратор ССЫЛКА Документ.ПриходныйОрдерНаТовары)

   

   СГРУППИРОВАТЬ ПО

       ТоварыНаСкладахОборотыПриход.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ТоварыНаСкладахОбороты.Номенклатура,

       0,

       0,

       0,

       0,

       СУММА(ТоварыНаСкладахОбороты.КоличествоРасход),

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       ТоварыНаСкладахОбороты.ПериодМесяц,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ТоварыНаСкладахОбороты

   ГДЕ

       (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

               ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

               ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

   

   СГРУППИРОВАТЬ ПО

       ТоварыНаСкладахОбороты.Номенклатура,

       ТоварыНаСкладахОбороты.ПериодМесяц

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       КемеровоРасход.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       СУММА(КемеровоРасход.КоличествоРасход),

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , Склад В ИЕРАРХИИ (&ФилиалКемерово)) КАК КемеровоРасход

   ГДЕ

       (КемеровоРасход.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

               ИЛИ КемеровоРасход.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

               ИЛИ КемеровоРасход.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

   

   СГРУППИРОВАТЬ ПО

       КемеровоРасход.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       РасходТомск.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       СУММА(РасходТомск.КоличествоРасход),

       0,

       0,

       0,

       0,

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, Склад В ИЕРАРХИИ (&ФилиалТомск)) КАК РасходТомск

   ГДЕ

       (РасходТомск.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

               ИЛИ РасходТомск.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

               ИЛИ РасходТомск.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

   

   СГРУППИРОВАТЬ ПО

       РасходТомск.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       РасходНК.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       СУММА(РасходНК.КоличествоРасход),

       0,

       0,

       0,

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, Склад В ИЕРАРХИИ (&ФилиалНК)) КАК РасходНК

   ГДЕ

       (РасходНК.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

               ИЛИ РасходНК.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

               ИЛИ РасходНК.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

   

   СГРУППИРОВАТЬ ПО

       РасходНК.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ОстаткиКемерово.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       СУММА(ОстаткиКемерово.КоличествоКонечныйОстаток),

       0,

       0,

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , Склад В ИЕРАРХИИ (&ФилиалКемерово)) КАК ОстаткиКемерово

   

   СГРУППИРОВАТЬ ПО

       ОстаткиКемерово.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ОстаткиНК.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       СУММА(ОстаткиНК.КоличествоКонечныйОстаток),

       0,

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , Склад В ИЕРАРХИИ (&ФилиалНК)) КАК ОстаткиНК

   

   СГРУППИРОВАТЬ ПО

       ОстаткиНК.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ОстаткиТомск.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       СУММА(ОстаткиТомск.КоличествоКонечныйОстаток),

       0,

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, , Склад В ИЕРАРХИИ (&ФилиалТомск)) КАК ОстаткиТомск

   

   СГРУППИРОВАТЬ ПО

       ОстаткиТомск.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ЦеныНоменклатурыСрезПоследних.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       СУММА(ЦеныНоменклатурыСрезПоследних.Цена),

       0,

       NULL,

       NULL,

       0

   ИЗ

       РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода {(&КонецПериода)}, ТипЦен = &ТипЦенЗакупа) КАК ЦеныНоменклатурыСрезПоследних

   

   СГРУППИРОВАТЬ ПО

       ЦеныНоменклатурыСрезПоследних.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ЦеныНоменклатурыСрезПоследних.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       СУММА(ЦеныНоменклатурыСрезПоследних.Цена),

       NULL,

       NULL,

       0

   ИЗ

       РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода {(&КонецПериода)}, ТипЦен = &ТипЦенРозница) КАК ЦеныНоменклатурыСрезПоследних

   

   СГРУППИРОВАТЬ ПО

       ЦеныНоменклатурыСрезПоследних.Номенклатура

   
   ОБЪЕДИНИТЬ ВСЕ

   

   ВЫБРАТЬ

       ЗаказыПоставщикамОстатки.Номенклатура,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       0,

       NULL,

       НАЧАЛОПЕРИОДА(ЗаказыПоставщикамОстатки.ЗаказПоставщику.Дата, ДЕНЬ),

       ЗаказыПоставщикамОстатки.КоличествоОстаток

   ИЗ

       РегистрНакопления.ЗаказыПоставщикам.Остатки(&КонецПериода {(&КонецПериода)}, ) КАК ЗаказыПоставщикамОстатки

   ГДЕ

       ЗаказыПоставщикамОстатки.КоличествоОстаток <> 0) КАК ИтогТаблицы

  

Pereliviya

27 — 09.10.12 — 10:38

(24) ВЫБРАТЬ

       ….

   СУММА(ЕСТЬNULL(ТоварВПутиЗ.КолТоварВПути, 0)) КАК КолТоварВПути,

   ТоварВПутиЗ.ТоварВПути,

       ….

в каком месте не выбраны поля?

  

Pereliviya

28 — 09.10.12 — 10:39

ну подскажите что может быть????

  

ptiz

29 — 09.10.12 — 10:45

(27) Тьфу на тебя так поля называть! :)

  

Pereliviya

30 — 09.10.12 — 10:46

(29) уж как смогла :))

  

ptiz

31 — 09.10.12 — 10:47

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

Выведи отдельно ТоварВПути3 и итоговую таблицу без соединения с ТоварВПути3.

  

Pereliviya

32 — 09.10.12 — 10:49

(31) ууу…. там очень много строк….

сделаю скажу цифры.

  

ДемонМаксвелла

33 — 09.10.12 — 11:08

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

  

Pereliviya

34 — 09.10.12 — 11:08

(31) товар в пути  2366 строк, остальная таблица 25790 строк

  

Pereliviya

35 — 09.10.12 — 11:09

(33) какое решение?

  

ДемонМаксвелла

36 — 09.10.12 — 11:12

делать вывод СКД программно, контролировать количество строк, прекращать вывод не дожидаясь «Недостаточно памяти». убрать расшифровку — слегка поможет.

  

ДемонМаксвелла

37 — 09.10.12 — 11:14

проблема наступает при миллионах строк. 25000 — это детский лепет.

  

Pereliviya

38 — 09.10.12 — 11:16

(37) согдасна. Но вот вылетает же

  

ДемонМаксвелла

39 — 09.10.12 — 11:19

(38) оценивать нужно количество строк в отчете, а не в исходных таблицах. при соединении двух таблиц по 1000 записей уже технически возможно получить миллион.

  

Pereliviya

40 — 09.10.12 — 11:23

эта проблема появилась, когда добавилась колонка общего расхода по месяцам.

  

ДемонМаксвелла

41 — 09.10.12 — 11:23

сделай вывод СКД программно, количество строк в итоговом отчете посчитай в таком цикле:

Пока ЭлементРезультата <> Неопределено Цикл        

   ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

   ЭлементРезультата = ПроцессорКомпоновки.Следующий();

КонецЦикла;

  

ptiz

42 — 09.10.12 — 11:30

(37) У неё идет соединение этих двух таблиц, так что записей будет больше.

Но если «товар в пути  2366 строк», то не намного больше.

Не должно падать.

Либо кол-во строк неверно посчитано.

  

Kashemir

43 — 09.10.12 — 11:41

Проблема озвученная в (0) является клиентской проблемой и наиболее вероятно возникает при получении слишком большого количества результатов — (33) прав.

Но есть и второй вариант — размер самой базовой настройки может превысить некое фиксированное значение — до выполнения запроса даже дело не дойдет. У меня был такой опыт — запрос для схемы строился на основе справочника показателей — сотня таблиц объединения показателей с ~400 параметрами — слет по памяти. Причем сам процесс 1с сам по себе отжирал при этом не более 400мб

  

Axel2009

44 — 09.10.12 — 12:33

ВЫБРАТЬ

   ЗаказыПоставщикамОстатки.Номенклатура,

   СУММА(ЗаказыПоставщикамОстатки.КоличествоОстаток) КАК КолТоварВПути,

   НАЧАЛОПЕРИОДА(ЗаказыПоставщикамОстатки.ЗаказПоставщику.Дата, ДЕНЬ) КАК ТоварВПути

ПОМЕСТИТЬ ТоварВПутиЗ

ИЗ

   РегистрНакопления.ЗаказыПоставщикам.Остатки(&КонецПериода {(&КонецПериода)}, ) КАК ЗаказыПоставщикамОстатки

ГДЕ

   ЗаказыПоставщикамОстатки.КоличествоОстаток <> 0

СГРУППИРОВАТЬ ПО

   ЗаказыПоставщикамОстатки.Номенклатура,

   НАЧАЛОПЕРИОДА(ЗаказыПоставщикамОстатки.ЗаказПоставщику.Дата, ДЕНЬ)

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

  

Aprobator

45 — 09.10.12 — 14:11

(44) это как? Обращение вроде к виртуальной таблице регистра свертку делает. Другое дело что услове ГДЕ тут нафиг не нужно. Не может в остатках 0 быть.

  

Axel2009

46 — 09.10.12 — 14:24

(45) группировка то по дням есть. значит сколько раз поступало, столько строк и будет

  

Aprobator

47 — 09.10.12 — 14:37

(46) группировку вижу, но не вижу перемножения.

  

Axel2009

48 — 09.10.12 — 14:39

поторопился.. масштабы поменьше но все же

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК ОбщийРасход,

   ТоварыНаСкладахОбороты.ПериодМесяц КАК ПоМесяцам

ПОМЕСТИТЬ ОбщийРасходЗ

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

  (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

          ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

          ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура,

   ТоварыНаСкладахОбороты.ПериодМесяц

;

ВЫБРАТЬ

   ЗаказыПоставщикамОстатки.Номенклатура,

   СУММА(ЗаказыПоставщикамОстатки.КоличествоОстаток) КАК КолТоварВПути,

   НАЧАЛОПЕРИОДА(ЗаказыПоставщикамОстатки.ЗаказПоставщику.Дата, ДЕНЬ) КАК ТоварВПути

ПОМЕСТИТЬ ТоварВПутиЗ

ИЗ

   РегистрНакопления.ЗаказыПоставщикам.Остатки(&КонецПериода {(&КонецПериода)}, ) КАК ЗаказыПоставщикамОстатки

ГДЕ

   ЗаказыПоставщикамОстатки.КоличествоОстаток <> 0

СГРУППИРОВАТЬ ПО

   ЗаказыПоставщикамОстатки.Номенклатура,

   НАЧАЛОПЕРИОДА(ЗаказыПоставщикамОстатки.ЗаказПоставщику.Дата, ДЕНЬ)

эти 2 запроса при соединении по номенклатуре что сделают?

  

Aprobator

49 — 09.10.12 — 14:53

(48) поскольку свертка есть в обоих подзапросах, то умножение будет  при соединении только по номенклатуре, если будет еще добавлено и соединение по периодам, то ничего страшного не вижу.

  

Aprobator

50 — 09.10.12 — 14:54

хотя месяц с днем — небольщой кирдык то будет конечно.

  

Pereliviya

51 — 09.10.12 — 15:27

(48) Периоды выбраны для разных целей.

Поле «ПоМесяцам» разбивает Расход по месяцам за выбранный период, поле «ТоварВПути» разбивает на конкретные даты заказанных товаров, но еще  не поступивших, т.е. в пути.

Вот пример отчета: http://files.mail.ru/C6PB0R

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

  

Fragster

52 — 09.10.12 — 15:28

где фотка?

  

Fragster

53 — 09.10.12 — 15:28

падает на запросе или на «вывод отчета»?

  

Pereliviya

54 — 09.10.12 — 15:31

(53) на выводе отчета

  

Axel2009

55 — 09.10.12 — 15:31

(51) да без разницы для каких целей.

если поступлений будет 3, а отгрузок будет 5, как их выводить в отчете?

  

Pereliviya

56 — 09.10.12 — 15:47

?

  

Fragster

57 — 09.10.12 — 15:51

(54) а фотка где?

  

Fragster

58 — 09.10.12 — 15:52

(54) на скольки %?

  

Pereliviya

59 — 09.10.12 — 15:56

(57) зачем?

(58) на 0 % стоит думает и выводит «Недостаточно памяти».

  

Kashemir

60 — 09.10.12 — 15:58

(59) 3 год на форуме и спрашиваешь зачем ?

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

  

  

Pereliviya

61 — 09.10.12 — 16:03

(60) 3 года как зарегистрирована — не показатель.

  

Fragster

62 — 09.10.12 — 16:04

(59) файловая?

  

Pereliviya

63 — 09.10.12 — 16:07

(62) к сожалею да. Файловая.

При формировании отчета сжирает всю память.

Память доходит до 3,95 ГБ

Физическая память всего 4086

              свободно 4  — это при пике (ошибке).

  

Fragster

64 — 09.10.12 — 16:09

(63) потребление памяти надо смотреть процессом, а не «физическая память». или у тебя своп выключен?

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

  

Fragster

65 — 09.10.12 — 16:12

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

  

Fragster

66 — 09.10.12 — 16:13

а просто в консоли запросов отчет выполняется?

  

Pereliviya

67 — 09.10.12 — 16:18

(65) процессом доходит до 1 815 304 КБ (если я правильно поняла)

в консоли отчет спокойно формируется.

  

Pereliviya

68 — 09.10.12 — 16:19

(65) попробую временные таблицы удалять… спасибо за совет

  

Fragster

69 — 09.10.12 — 16:19

(67) получи реальный текст запроса, а потом его в консоль запросов запихай

  

Aprobator

70 — 10.10.12 — 10:06

(67) если в консоли формируется, то автозаполнение в СКД в сад и явно указываешь какие поля доступны для вывода и условий в СКД.

  

ЧеловекДуши

71 — 10.10.12 — 10:14

(67)32-ух битное, а это лихо так написать запрос, что бы он отъел все пространство до самого краха :DDDD

Все дело в фото…

  

ЧеловекДуши

72 — 10.10.12 — 10:15

+(67)Лучше начать смотреть в ту сторону, что у вас неправильное представления ведения учета, коль приходится лопатить такой объем информации :)

  

Pereliviya

73 — 10.10.12 — 10:31

(72) задача состояла написать такой отчет. Базу вижу впервые, т.е. я сторонний программист. А клиенту ну захотелось в одном отчете все и сразу… ну бывает…

  

Pereliviya

74 — 10.10.12 — 10:41

(71) предложите компактнее вариант чтоб выглядело таким образом (51)

  

Axel2009

75 — 10.10.12 — 10:44

(74) сначала (55) прочитать надо бы.

  

Pereliviya

76 — 10.10.12 — 10:46

  

Pereliviya

77 — 10.10.12 — 10:47

(75) выводить как в (51)

  

Pereliviya

78 — 10.10.12 — 14:01

В общем, решила проверять свой запрос частями, чтоб понять на каком моменте у меня «Рушится». Оказалось вот этот запрос:

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура            КАК Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК КоличествоРасход,

   ТоварыНаСкладахОбороты.ПериодМесяц             КАК ПериодМесяц

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   (ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары

           ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура,

   ТоварыНаСкладахОбороты.ПериодМесяц

эх….

  

Pereliviya

79 — 10.10.12 — 14:07

ну нехватает ему памяти :(((

  

Pereliviya

80 — 10.10.12 — 14:12

идея! :))))  «оптимизируем» условие:

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура            КАК Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК КоличествоРасход,

   ТоварыНаСкладахОбороты.ПериодМесяц             КАК ПериодМесяц

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   (НЕ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура,

   ТоварыНаСкладахОбороты.ПериодМесяц

и…. печалько…. ничто не помогает справиться.

  

Pereliviya

81 — 10.10.12 — 14:14

в общем, опечалила клиента. Сказала что такой отчет можно формировать только если выбирать в отборе конкретную номенклатуру :)))

  

Aprobator

82 — 10.10.12 — 14:14

опять группировка

  

Fragster

83 — 10.10.12 — 14:16

ТИИ с логической цеслотностью. обращение к реальной таблице вместо виртуальной.

  

Pereliviya

84 — 10.10.12 — 14:21

(82) что с ней, что без нее.. вылетает уже ненавистное окошко с сообщением «Недостаточно памяти» :(( Правда конечно уже не на 0%, а на 18% вылетает! Прогресс! :)))

  

Fragster

85 — 10.10.12 — 14:23

(84) на закладке «макет» задай для полей макеты без расшифровок.

  

GANR

86 — 10.10.12 — 14:23

1. (7) Нужно как угодно избавиться от такого количества полных соединений — на них уйма времени уходит. Наверняка то, что полным соединением делается можно сделать посредством «объединить все» и «выбор когда».

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

3. (26) Уже лучше. Вместо множества запросов к одной и той-же таблице (скажем, ТоварыНаСкладах) через объеднить все используй запрос один раз — не надо ничего объединять, надо так:

выбор когда Склад = &ФилиалКемерово Тогда Количество иначе 0 конец КАК ОстатокКемерово,

выбор когда Склад = &ФилиалНовосибирск Тогда Количество иначе 0 конец КАК ОстатокНовосибирск,

Смысл понятен?

  

Fragster

87 — 10.10.12 — 14:25

(86).2 временные таблицы в 90% работают быстрее чем виртуальные в соединениях.

  

GANR

88 — 10.10.12 — 14:26

(87) Хорошо-бы план запроса в SQL-варианте бы ещё поглядеть, если нужный софт и навык есть.

  

Pereliviya

89 — 10.10.12 — 14:26

(86) смысл понятен, но! Упустите пока все выше сказанное. Анализируем запрос только (80).

  

Fragster

90 — 10.10.12 — 14:27

(88) да, в этом все и дело, что виртуальная таблица — на самом деле это 2-4 вложенных запроса, из-за чего план строится кривой.

  

GANR

91 — 10.10.12 — 14:34

(89) Глянуть-бы, во что (80) транслируется — нет ли там UNION ALL по всем типам регистраторов для регистра «Товары на складах»? Если так — тогда понятно почему тормоза. Боюсь, что оптимальнее, в таком случае, может быть только ПРЯМОЙ SQL-запрос.

  

Pereliviya

92 — 10.10.12 — 14:36

(91) так то конечно! Но, в самом начале (0) говорила что база файловая.

  

GANR

93 — 10.10.12 — 14:44

(92) А если, фильтр в (80) по Регистратор ССЫЛКА … убрать работает?

  

GANR

94 — 10.10.12 — 14:48

(92) А может попробовать так вместо (80):

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура            КАК Номенклатура,

   СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК КоличествоРасход,

   ТоварыНаСкладахОбороты.ПериодМесяц             КАК ПериодМесяц

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ТоварыНаСкладахОбороты

ГДЕ

   НЕ ТоварыНаСкладахОбороты.Регистратор В (ВЫБРАТЬ Ссылка ИЗ Документ.ПеремещениеТоваров)

СГРУППИРОВАТЬ ПО

   ТоварыНаСкладахОбороты.Номенклатура,

   ТоварыНаСкладахОбороты.ПериодМесяц

  

Pereliviya

95 — 10.10.12 — 14:56

(94) Убрала вообще регистратор и из периодичности и из условия соответственно, все равно вылетает. Правда на 65% :)

  

Pereliviya

96 — 10.10.12 — 14:58

т.е. такой запрос стал:

ВЫБРАТЬ

   ТоварыНаСкладахОбороты.Номенклатура,

   ТоварыНаСкладахОбороты.КоличествоРасход КАК КоличествоРасход,

   ТоварыНаСкладахОбороты.Период

ИЗ

   РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ТоварыНаСкладахОбороты

  

Aprobator

97 — 10.10.12 — 14:59

и условие на регистратор пало смертью храбрых.

  

Pereliviya

98 — 10.10.12 — 14:59

(97) да уже бы как-нибудь заработало :)))

  

GANR

99 — 10.10.12 — 15:06

(98) Что сказать, тяжелый случай. Напишу хоть порожняк, глядишь — ветвь поднимется.

  

GANR

100 — 10.10.12 — 15:07

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

поддержка компьютерных программ

Общее представление

Функциональная специфика операционной системы Windows, чаще всего встречающейся на компьютерах, используемых в профессиональных целях, характеризуется выделением лимитированного объема адресного пространства, которое может использоваться программным обеспечением. Дефолтные настройки выглядят совсем просто: 2 ГБ для 32-разрядной версии, и в два раза больше — для 64-битной ОС.

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

Решение проблемы на клиентском компьютере

Итак, для Microsoft Windows ключевым проблемным фактором обычно оказывается выход за пределы рамок, определенных базовыми настройками операционной системы. Чем выше разрядность используемой версии — тем большее количество отведено под использование, однако даже четырех гигабайт далеко не всегда бывает достаточно. Особенно если речь идет о требовательных к ресурсам приложениях, графических редакторах или громоздких базах данных, запущенных параллельно работе бухгалтерской учетной программы.

настройка ПО

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

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

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

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

  1. Запуск командной строки Windows. Microsoft предлагают использовать для этого обычное меню «Пуск», либо комбинацию «горячих клавиш» Win+R — в появившейся форме достаточно ввести значение «cmd», и запустить операцию нажатием на Enter.
  2. На экране должно возникнуть новое окно с черным полем для ввода данных. В нем прописывается команда «bcdedit/set increaseuserva 3200», число в которой отображает ограничение, установленное на использование ОЗУ. В этом случае речь идет об увеличении до 3,2 Гб, что обуславливается необходимостью постепенной корректировки системных настроек.
  3. После завершения процедуры нужно перезагрузить ПК — только после этого внесенные изменения вступят в силу. Для проверки результатов потребуется повторно выполнить те же самые действия, которые ранее приводили к ошибке 1 С «Недостаточно памяти». При очередном появлении уведомления следует повторить первый и второй пункт инструкции, но теперь установив цифровое значение на 3600 или 4096. Если же запуск аналогичных программ и обработка запросов не вызывает проблем с функциональным состоянием учетного приложения — вопрос считается решенным, однако остается еще один, завершающий этап.
  4. Для восстановления ограничителя, используемого операционной системой, нужно вновь открыть командную строку, прописав в ней команду «bcdedit/deletevalue increaseuserva». Это условие исключает снижение работоспособности ОС в пользу 1С, и обеспечивает комфортную работу с другим программным обеспечением.

получение информации

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

Готовые решения для всех направлений

Склады

Ускорь работу сотрудников склада при помощи мобильной автоматизации. Навсегда устраните ошибки при приёмке, отгрузке, инвентаризации и перемещении товара.

Узнать больше

Магазины

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

Узнать больше

Маркировка

Обязательная маркировка товаров — это возможность для каждой организации на 100% исключить приёмку на свой склад контрафактного товара и отследить цепочку поставок от производителя.

Узнать больше

E-commerce

Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.

Узнать больше

Учреждения

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

Узнать больше

Производство

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

Узнать больше

RFID

Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.

Узнать больше

ЕГАИС

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

Узнать больше

Сертификация

Получение сертифицированного статуса партнёра «Клеверенс» позволит вашей компании выйти на новый уровень решения задач на предприятиях ваших клиентов..

Узнать больше

Инвентаризация

Используй современные мобильные инструменты для проведения инвентаризации товара. Повысь скорость и точность бизнес-процесса.

Узнать больше

Показать все решения по автоматизации

Недостаточно памяти на диске сервера 1C

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

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

Обходные пути

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

  1. Перезагрузка сервера. Да, это может показаться элементарным, но при принудительном завершении автоматически закрываются зависшие процессы, отнимающие львиную долю потенциально доступных ресурсов. Главное — предварительно позаботиться о сохранении текущих данных.
  2. Отключение и запуск рабочих циклов, генерируемых самой учетной программой. Это сокращает используемый объем, высвобождая достаточное количество памяти для действительно важных задач. В этом случае следует обратиться к квалифицированному системному администратору, обладающему навыками и знаниями для безопасной работы с консолью.
  3. Использование содержащего табличные параметры технологического журнала. Загрузка таблицы зачастую сопровождается уведомлением об ошибке, возникающим при выполнении определенных операций. Если трудности обработки вызывает «config», необходимо проверить логическую целостность конфигурации. Проверка предусмотрена функционалом 1С, и запускается в соответствующем разделе программы.

программные разработки

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

Комплексный подход

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

  1. Проверка загруженности оперативки через встроенный диспетчер задач, выявление неиспользуемых приложений и высвобождение части ресурсов. В идеале следует закрыть все ненужное, оставив только рабочие и системные процессы.
  2. По возможности — технологическое увеличение объема ОЗУ. Подобная опция доступна не всегда, однако, если есть возможность, — ей определенно стоит пользоваться.
  3. Выделение через базовые настройки дополнительной памяти, то есть увеличение значения, установленного для файла подкачки.
  4. При достаточном оперативном объеме проблемой может оказаться 32-битная версия платформы. Решение — в переходе на 64-разрядный формат.
  5. В случае адресной нехватки — запуск командной строки (выполняется под учетной записью администратора), с последующим вводом команды BCDEdit /set increaseuserva xxxx, где последние четыре знака — желаемое значение виртуального пространства, указанное в мегабайтах. Метод требует особой аккуратности, так что лучше заранее ознакомиться со справочными материалами, раскрывающими специфику работы с той или иной операционной системой. Для возврата исходных ограничений выполняется операция bcdedit /deletevalue increaseuserva.

Как увеличить количество адресной памяти

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

программные продукты

Переход на другую платформу

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

Варианты без замены ОС

При использовании XP, или даже более старых версий операционной системы Windows, изменение осуществляется с помощью файла boot.ini. Достаточно открыть его местоположение в корневой папке на диске C, и ввести дополнительный параметр /3Gb/userva=2900. Если на клиентском компьютере установлена Vista, либо любая другая версия — применяется вышеописанный способ взаимодействия через командную строку. При этом важно учитывать, что операция оказывает влияние не только на 1С, но и на работоспособность ОС в целом, так что в случае отсутствия знаний и навыков все же стоит обратиться за помощью к системному администратору.

Решение проблемы без изменения адресного пространства

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

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

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

автоматизация программными продуктами

Что делать, когда на сервере недостаточно памяти

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

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

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

Нужно ли обращаться к специалистам

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

Заключение

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

Количество показов: 4563

Столкнулись с ситуацией, при обновлении программы 1С, компьютер выдает ошибку «Недостаточно памяти». Обновление идет очень медленно и доходя до определенного процента выполнения появляется ошибка.

Содержание

  • Ошибка Недостаточно памяти и причины ее появления
  • Как исправить ошибку в 1С Недостаточно памяти

Ошибка Недостаточно памяти и причины ее появления

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

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

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

Подробнее о параметрах компьютера для работы в 1С

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

  • в 32-х разрядных операционных системах по умолчанию выделено 2 Гб на различные программы и столько же для операционной системы,
  • в 64-х разрядных операционных системах — объем памяти составляет уже 4 Гб.

При работе 1С и выполнения операции, можно через Диспетчер задач следить за процессом загрузки процессора и за свободным количеством памяти. В нашем случае, при обновлении это цифра приближалась к нулю и в этот момент возникала ошибка «Недостаточно памяти». Запустить Диспетчер задач можно нажатием клавиш Ctrl+Alt+Del и открыв вкладку Быстродействие, следить за данными показателями.

Таким образом, нам необходимо увеличить размер выделяемой адресной памяти для приложений (в том числе и 1С). Это можно сделать двумя способами: перейти с 32-х разрядной системы на 64-х разрядную или увеличить выделяемое по умолчанию количество адресной памяти. Первый вариант является более правильным, но в силу некоторых причин он бывает невозможен, поэтому рассмотрим второй вариант решения проблемы.

Для увеличения размер адресной памяти, необходимо:

  1. Перейти в кнопку Пуск и в строке поиска ввести cmd. В списке найденных программ выбираем cmd и таким образом запустить командную строку.Командную строку можно открыть также при помощи комбинации горячих клавиш Windows + R, указав в строке — cmd.
  2. В командной строке вводим bcdedit/set increaseuserva 3100, где 3100 — размер желаемой адресной памяти. Данная цифра взята для примера и увеличивать ограничение размера адресной памяти нужно аккуратно и постепенно, возможно небольшое увеличение будет достаточно для работы программы.
  3. Перезагружаем компьютер и попробуйте выполнить действие в 1С, при котором возникала ошибка.
  4. Если все прошло успешно и операция вызывающая ошибку повторяется не так часто, рекомендуется вернуть размер адресной памяти к значению по умолчанию с помощью команды bcdedit/deletevalue increaseuserva.

См. также:

  • Неверный формат хранилища данных 1С 8.3: как исправить
  • Ошибка формата потока 1С 8.3: как исправить
  • Ошибка СУБД: файл базы данных поврежден в 1С 8.3
  • Не найден файл внешней компоненты в 1С 8.3: как исправить
  • Ошибка работы с интернет Удаленный узел не прошел проверку в 1С: как исправить

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

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

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

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

В чем причина ошибки?

Чаще всего дело в том, что операционная система выделяет ограниченное количество адресной памяти под ПО. По умолчанию стоят следующие ограничения: 2Гб для 32-бит и 4Гб для 64-разрядной системы. Если 1С недостаточно памяти и вы видите данную ошибку при определенных действиях, то скорее всего нам надо увеличить доступное адресное пространство, чтобы программа могла работать без проблем.

недостаточно памяти 1С

Как увеличить количество адресной памяти?

Рассмотрим несколько основных способов.

Переход на другую систему

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

Решение без смены операционной системы

Если у вас Windows XP или более ранние версии ОС, вы можете изменить размер адресного пространства в файле boot.ini. Для этого нужно найти его в корне диск С и добавить параметр /3Gb/userva=2900.

Для Windows Vista и последующих версий можно действовать из командной строки. Запустите команду BCDEdit /set  increaseuserva 2900.

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

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

Вместо 2900 вы можете вводить любой другой размер желаемой памяти.

ВНИМАНИЕ! Данный способ напрямую влияет не только на работу 1С, но и на работу вашей операционной системой. Мы не рекомендуем прибегать к нему, если вы имеете только отдаленное представление о ее функционировании.

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

Решение проблемы без изменения адресного пространства

В ряде случаев можно решить вопрос менее радикально. Предлагаем несколько способов:

  • Изменение настроек отчета. Если ошибка возникает при формировании отчета, попробуйте изменить его настройки. Поменяйте дату, измените группировки, добавьте отбор.
  • Удаление помеченных на удаление документов и справочников. Тем самым, вы увеличите производительность системы и уменьшите размер базы данных.

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

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

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

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

недостаточно памяти на сервере 1С предприятие

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

  • Совершите перезагрузку сервера 1С;
  • Попробуйте перезапустить рабочие процессы 1С;
  • Используя технологический журнал, найдите таблицу, при загрузке которой возникает ошибка «Недостаточно памяти». Если ошибка появилась при работе с таблицей «config», то выполните проверку конфигурации с флагом «Проверка логической целостности конфигурации». Найти эту функцию можно в конфигураторе в меню «Конфигурация».
  • Очистите место на диске сервера. Учтите, что много места могут занимать временные таблицы.

Решить вопрос самостоятельно или воспользоваться услугами специалистов?

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

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

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

Позвоните по номеру телефона, указанному на сайте или заполните форму обратной связи, чтобы наши сотрудники сориентировали по стоимости работ, подобрали оптимальное решение и рассказали, как начать сотрудничество. Ждем вас!

решим ошибку по нехватке памяти 1С

При работе с программой 1С может выскакивать ошибка 1С: Недостаточно памяти». Появление подобной ошибки 1С, как правило, возникает:

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

Во всех вариантах причиной неполадок является малый объем оперативной (физической) памяти, которая зарезервирована под работу конкретной программы или отдельных ее компонентов.
Так же следует обратить внимание на рекомендованный объем оперативной памяти для конкретной конфигурации. Так, например, для конфигураций «1С: Бухгалтерия 8, ред.3.0», «1С: Управление торговлей 8, ред. 11», «1С: Комплексная автоматизация 8, ред. 2.4», «1С: ERP Управление предприятием 2, ред. 2.4» рекомендуемый объем памяти – 4 Гб.

Способы устранения ошибки 1С: «Недостаточно памяти»:

  1. Принудительное увеличение объема оперативной памяти.

Для этих целей необходимо через опцию WINDOWS «ПУСК», в режиме поиска ввести (на английском языке) — «cmd». После отображения командной строки – наберите словосочетание «bcdedit/set increaseuserva 3100». При этом последний параметр указывает на размер физической памяти, выделяемой под используемую программу. Возможно, таких циклов корректировки необходимо будет произвести несколько раз, постепенно увеличивая объем доступной оперативной памяти (3100, 3200, 3300 и т.д.) до полного устранения данной ошибки 1С: «Недостаточно памяти».

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

  1. Самым оптимальным решением будет переход с 32-х на 64-х разрядную операционную систему, естественно, при наличии такой аппаратной возможности.

Данный способ предоставляет программе 1С доступ к 4 Гб оперативной памяти, в то время, как даже при наращивании памяти в 32-х разрядной системе до 8 Гб – корректный доступ будет только к 2 Гб.

Ошибка «Недостаточно памяти» в 1С 8.3 и 8.2 является не такой уж и редкой. Ее можно встретить и в конфигураторе (например, при сравнении конфигураций), а так же в режиме «1С:Предприятие» при выполнении трудоемких обработок: например при записи большого файла формата base64.

недостаточно памяти

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

Все дело в том, что в 32-х разрядных операционных системах по умолчанию 2 ГигаБайта на различные программы и столько же для операционной системы. В 64-х разрядных ОС выделяемый на приложения объем памяти составляет уже 4 ГигаБайта.

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

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

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.

Связаться с нами можно по телефону +7 499 350 29 00.

Услуги и цены можно увидеть по ссылке.

Будем рады помочь Вам!

Перед вами отобразится поиск программ. Выберите ту, что называется «cmd».

cmd

Так же командную строку можно открыть при помощи комбинации горячих клавиш Windows + R.

пуск - выполнить

В открывшемся окне наберите следующую команду и так же нажмите «Enter»:

bcdedit /set increaseuserva 3200

установка размера

В данном случае вы увеличите объем адресной памяти до 3200 МегаБайт.

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

После того, как у вас все получилось, настоятельно рекомендуется восстановить прежний объем адресной памяти. Данная мера временная, так как при выделении памяти на приложения, у операционной системы ее становится меньше. За счет этого возможно нарушение стабильности Windows.

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

bcdedit /deletevalue increaseuserva

восстановления адресной памяти

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

Возможно, вам также будет интересно:

  • При формировании машиночитаемой формы возникла неизвестная ошибка
  • При формировании запроса произошла ошибка proxy error 502
  • При формировании запроса произошла ошибка internal server error 500 росказна
  • При форматировании флешки произошла непредвиденная ошибка
  • При форматировании флешки выдает ошибку диск защищен от записи

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии