Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Недостаточно памяти
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Администратору 1С / Системному администратору / Администратору баз данных > Администрирование и настройка 1С
MATEVI
Есть отчет по материальным счетам, по регистру бухглтерии, отбор по списку счетов и субконто задается в запросе. Объем движений материалов достаточно большой. Реализован через построитель. При формировании отчета за месяц отчет строится и выводится.
Если формируешь отчет за 9 мес. - 1С вываливается с сообщением "Недостаточно свободной памяти на сервере 1С-предприятия".

Сервер Intel® Xeon® CPU E5405 2.00GHz 8 gb Server 2003 (32) Enterprise SP2. База на SQL2005 с AWE игрался с различными значениями и с отключением. При формировании отчета в файловой копии аналогичная проблема с сообщением "Недостаточно памяти".

Платформа 8.2.16.368. В файловой копии на платформах 8.2.14.540 (8.2.15.(289)319 тоже пробовал)

На машине Intel® Core TM i7-2600k 3.04GHz 8 gb W7-64x отчет формируется за 2 года без вылетов, с детализацией по фирмам, счетам, складам, и номенклатуре. Долго, но очень большое движение материалов, продукции, товаров и т.д., ~32000 строк

Я не админ, но подозреваю что дело не в отчете, а в железе или настройках сервера. Куда копать, что посоветуете. Спасибо.
logist
Вероятно надо 64-битную серверную ОС.
pablo
Проблема в отчете. Особенно если в запросе есть вложенные запросы.
Acid
ого. 32000 строк... наверное эксель тоже такое не откроет...

наверное кубы надо строить...

а если сделать примерно такой же отчет средствами самого SQL ? сработает?
Vofka
Цитата(pablo @ 19.11.12, 13:27) необходимо зарегистрироваться для просмотра ссылки
Проблема в отчете. Особенно если в запросе есть вложенные запросы.

Вы хотите сказать, что можно запустить (съоптимизировать) любой отчет на любом наборе данных на любом железе?

Цитата(Acid @ 19.11.12, 14:28) необходимо зарегистрироваться для просмотра ссылки
а если сделать примерно такой же отчет средствами самого SQL ?

Ну это же не то пальто. В 1С много ресурсов уходит на вывод данных в табличный документ.

Мне сдается, что железа не хватает. Посмотрите сколько памяти ест процесс 1С. Можете сравнить на разном железе.
pablo
Цитата
Вы хотите сказать, что можно запустить (съоптимизировать) любой отчет на любом наборе данных на любом железе

Не любой, но, вообще говоря, произвольный - можно. Да и вывод данных в табличный документ можно оптимизировать, если выводить в него только простые типы данных.
Ardi
Цитата
На машине Intel® Core TM i7-2600k 3.04GHz 8 gb W7-64x отчет формируется за 2 года без вылетов

Там тоже SQL?
MATEVI
Цитата(Vofka @ 19.11.12, 14:41) необходимо зарегистрироваться для просмотра ссылки
Ну это же не то пальто. В 1С много ресурсов уходит на вывод данных в табличный документ.Мне сдается, что железа не хватает. Посмотрите сколько памяти ест процесс 1С. Можете сравнить на разном железе.


Валится на запросе. На серваке. На второй (моей) машине нет.

Цитата(Ardi @ 19.11.12, 15:19) необходимо зарегистрироваться для просмотра ссылки
Там тоже SQL?

Нет

Цитата(pablo @ 19.11.12, 13:27) необходимо зарегистрироваться для просмотра ссылки
Проблема в отчете. Особенно если в запросе есть вложенные запросы.


Наверное все таки в отчете. Но я не уверен. Как тогда оптимизировать. Без регистратора выводит. Как только включаешь группировку по регистратору есстественно. На таких объемах
валится все.

необходимо зарегистрироваться для просмотра ссылки

ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
    ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
    ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
    ХозрасчетныйОстаткиИОбороты.Регистратор КАК ДокументДвижения,
    ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КоличествоОборотДт,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
    ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КоличествоОборотКт,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
    ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
{ВЫБРАТЬ
    ДокументДвижения КАК ДокументДвижения,
    Организация.*,
    Счет.*,
    Склад.*,
    Номенклатура.*}
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Авто, Движения, Счет В ИЕРАРХИИ (&масСчетов), &МассивСубконто, ) КАК ХозрасчетныйОстаткиИОбороты
{ГДЕ
    ХозрасчетныйОстаткиИОбороты.Организация.*,
    ХозрасчетныйОстаткиИОбороты.Счет.*,
    ХозрасчетныйОстаткиИОбороты.Субконто3.* КАК Склад,
    ХозрасчетныйОстаткиИОбороты.Субконто1.* КАК Номенклатура,
    ХозрасчетныйОстаткиИОбороты.Субконто2.* КАК Партии}

УПОРЯДОЧИТЬ ПО
    Организация,
    Счет,
    Склад,
    Номенклатура,
    ДокументДвижения
{УПОРЯДОЧИТЬ ПО
    Организация.*,
    Счет.*,
    Склад.*,
    Номенклатура.*}
ИТОГИ
    СУММА(КоличествоНачальныйОстаток),
    СУММА(СуммаНачальныйОстаток),
    СУММА(КоличествоОборотДт),
    СУММА(СуммаОборотДт),
    СУММА(КоличествоОборотКт),
    СУММА(СуммаОборотКт),
    СУММА(КоличествоКонечныйОстаток),
    СУММА(СуммаКонечныйОстаток)
ПО
    ОБЩИЕ,
    Организация,
    Счет,
    Склад,
    Номенклатура
{ИТОГИ ПО
    ДокументДвижения КАК ДокументДвижения,
    Организация.*,
    Счет.*,
    Склад.*,
    Номенклатура.*}
АВТОУПОРЯДОЧИВАНИЕ


// установка параметров 
ОбщийОтчет.ПостроительОтчета.Параметры.Вставить( "ДатаНач"              , ОбщийОтчет.ДатаНач);
ОбщийОтчет.ПостроительОтчета.Параметры.Вставить( "ДатаКон"              , КонецДня(ОбщийОтчет.ДатаКон));

МатСчета= Новый СписокЗначений;
МатСчета.Добавить(ПланыСчетов.Хозрасчетный.ПроизводственныеЗапасы);
МатСчета.Добавить(ПланыСчетов.Хозрасчетный.МалоценныеИБыстроизнашивающиесяПредметы);
МатСчета.Добавить(ПланыСчетов.Хозрасчетный.Полуфабрикаты);
МатСчета.Добавить(ПланыСчетов.Хозрасчетный.ГотоваяПродукция);
МатСчета.Добавить(ПланыСчетов.Хозрасчетный.ТоварыНаСкладе);
МатСчета.Добавить(ПланыСчетов.Хозрасчетный.ПродукцияСельскохозяйственногоПроизводства);
ОбщийОтчет.ПостроительОтчета.Параметры.Вставить( "масСчетов"            , МатСчета);

МассивСубконто = Новый Массив;
МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
ОбщийОтчет.ПостроительОтчета.Параметры.Вставить( "МассивСубконто"        , МассивСубконто);



44000000.gif Или железо или отчет. 64000000.gif

ЗЫ Вообщем я уже сам запутался.

ЗЫЫ думаю разбить на подзапросы. но не уверен поможет ли это.
pumbaE
Цитата(MATEVI @ 19.11.12, 15:44) необходимо зарегистрироваться для просмотра ссылки
Или железо или отчет.
Не железо, а ОС . Сервер 1С какой 64 или 32 на вашей машинке? Не хватает на 32 сервере 1С памяти для отчета, так же и на файловой базе. Ради эксперимента можете попробовать на 64 линуксе и 64 толстый клиент - сформируется.

Вариант 1 - устанавливать другую ОС 64 и сервер 1С 64
Вариант 2 - не строить такие большие отчеты.
Acid
Цитата(MATEVI @ 19.11.12, 15:44) необходимо зарегистрироваться для просмотра ссылки
Наверное все таки в отчете. Но я не уверен. Как тогда оптимизировать. Без регистратора выводит. Как только включаешь группировку по регистратору есстественно. На таких объемах
валится все.


В данном случае Регистратор выполняется как вложенный запрос. Надо только ссылку на регистратор (одно поле, а не целый объект). Типа такого:
ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка КАК ДокументДвижения,
. При надобности по этой ссылке можно будет найти документ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.