Как свернуть 1с
Использован релиз 3.0.60
Свертка информационной базы 1С – это обработка документов и регистров, при которой происходит формирование документов ввода остатков на определенную дату (дату свертки) и удаление документов, которые не используются, и движений по регистрам (сведений, накопления, бухгалтерии) по дату свертки включительно. Свертка информационной базы обычно выполняется, чтобы сократить объем данных в рабочей базе и увеличить скорость работы системы.
Перед сверткой обязательно создайте резервную копию базы данных (этап входит в процедуру свертки) на случай, если процедура свертки закончится неудачно и потребуется восстановить данные. Также в будущем может потребоваться сформировать отчеты по прошлым «отрезанным» периодам. В этом случае для восстановления архива (копии) создайте новую базу. Как это сделать, см. в ответе на вопрос «Как в «1С:Бухгалтерии 8″ (ред. 3.0) восстановить копию информационной базы до свертки?».
Процесс свертки информационной базы включает следующие этапы: создание резервной копии, настройку свертки, формирование документов ввода остатков, просмотр операций, проверку и удаление старых документов.
Свертку может выполнить только пользователь с правами «Администратор». Если с программой одновременно работают несколько пользователей, им необходимо завершить работу и выйти из программы.
Перед выполнением свертки информационной базы рекомендуется:
- создать архив базы, в случае неудачи его можно будет восстановить (архив можно создать в режиме «Конфигуратор», в режиме «1С:Предприятия» и в процессе свертки информационной базы);
- произвести тестовую свертку на копии рабочей базы;
- решение о возможности использования свертки для рабочей базы принимать по результатам успешного тестирования.
Для проведения свертки информационной базы (рис. 1):
- Раздел: Администрирование – Свертка информационной базы.
- Введите пароль (если у пользователя установлен пароль для входа в программу).
- В поле «Каталог резервной копии ИБ» выберите диск и каталог (папку), куда будет записана копия базы (тип файл *.cd).
- Кнопка «Далее». Появится обращение к администратору о создании резервной копии (также резервную копию можно создать предварительно – до свертки базы). Нажмите «Да» и дождитесь формирования файла с копией базы. Проверьте, что файл с копией базы сформировался и находится в указанной папке. Рис. 1
- На втором этапе «Настройка свертки» укажите период (год), на начало которого планируется свернуть информационную базу. Рекомендуется не снимать флажок «Установить дату запрета изменения данных» (рис. 2). Можно выполнить свертку по всем организациям в базе или выборочно. Для выборочной свертки установите переключатель «По организациям» в положение «По отмеченным организациям» и флажки у нужных организаций. Рис. 2
- На третьем этапе «Формирование остатков» предлагается выбрать регистры для формирования остатков (на соответствующих закладках — «Регистры бухгалтерии», «Регистры накопления», «Регистры сведений»). Предложенные программой настройки рекомендуется оставить по умолчанию и продолжить процесс по кнопке «Далее». Рис. 3
- На этапе «Просмотр операций» выводятся созданные документы ввода остатков (рис. 4). Их можно проверить и при необходимости отредактировать, а также создать новые документы ввода остатков. Если все верно, нажмите кнопку «Далее» и переходите к следующему этапу. Рис. 4
- На следующем этапе «Проверка» будет сформирован отчет с остатками по счетам до свертки и после (рис. 5). По кнопке «Показать настройки» можно настроить формирование отчета по показателям НУ, ПР и ВР или по субсчетам. Также можно проанализировать информацию по регистрам сведений и накопления, установив переключатель «Тип данных» в соответствующее положение. Если все верно, нажмите кнопку «Далее» и переходите к следующему этапу. Рис. 5
- На этапе «Удаление старых документов» помечаются на удаление документы прошлых периодов по дату свертки (рис. 6). У важных документов (для учета ОС, для учета НДС) пометка на удаление не устанавливается. Процесс может занять длительное время (в зависимости от объема информации). После установки пометок на удаление выводится сообщение «Свертка базы прошла успешно».
- Кнопка «Закрыть».
Откройте журнал операций, все документы прошлых периодов (до свертки) в нем помечены на удаление, кроме документов по учету ОС и НДС. Чтобы проверить, у каких документов не установлены пометки на удаление, нажмите кнопку «Реестр документов», установите период, за который выполнялась свертка базы. Нажмите кнопку «Показать настройки», затем кнопку «Добавить», выберите «Пометка на удаление», вид – сравнение «равно» и значение «нет». Сформируется реестр с объектами, которые не помечены на удаление.
Для окончательного удаления из базы объектов, помеченных на удаление, отройте раздел «Администрирование» и перейдите по ссылке «Удаление помеченных объектов».
Смотрите также
- Как в «1С:Бухгалтерии 8» (ред. 3.0) восстановить копию информационной базы, созданной до свертки?
- Как в «1С:Бухгалтерии 8» (ред. 3.0) выгрузить информационную базу в файл в режиме «Конфигуратор»?
- Как в «1С:Бухгалтерии 8» (ред. 3.0) загрузить информационную базу из файла в режиме «Конфигуратор»?
- Как в «1С:Бухгалтерии 8» (ред. 3.0) удалить помеченный на удаление документ или элемент справочника?
- Как в «1С:Бухгалтерии 8» (ред. 3.0) создать резервную копию (архив) информационной базы в пользовательском режиме?
- Как в «1С:Бухгалтерии 8» (ред. 3.0) восстановить резервную копию (архив) информационной базы в пользовательском режиме?
1С 8.3 Свернуть массив — Программист 1С Минск. Автоматизация бизнеса.
ПРИМЕРЫ КОДА 1С
Перейти в раздел примеры кода 1С 8.3:
Свертка Массива с помощью соответствия (пример №1) в 1С 8.3:
Процедура Свертка_Массива_через_Соответствие () Экспорт
МассивДляСвертки = Новый Массив ;
МассивДляСвертки . Добавить ( 2 );
МассивДляСвертки . Добавить ( 4 );
МассивДляСвертки . Добавить ( 7 ); // Массив: (2, 4, 7)
СоответствиеДляСвертки = Новый Соответствие ;
Для Каждого ЭлементМ Из МассивДляСвертки Цикл
СоответствиеДляСвертки . Вставить ( ЭлементМ );
КонецЦикла;
МассивДляСвертки . Очистить ();
Для Каждого ЭлементС Из СоответствиеДляСвертки Цикл
МассивДляСвертки . Добавить ( ЭлементС . Ключ );
КонецЦикла;
Свертка Массива с помощью доп.массива (пример №2) в 1С 8.3:
Процедура Свертка_Массива_через_доп_Массив () Экспорт
МассивДляСвертки = Новый Массив ;
МассивДляСвертки . Добавить ( 2 );
МассивДляСвертки . Добавить ( 4 );
МассивДляСвертки . Добавить ( 7 ); // Массив: (2, 4, 7)
МассивДополнительный = Новый Массив ;
Для Каждого ЭлементМ Из МассивДляСвертки Цикл
Если МассивДополнительный . Найти ( ЭлементМ ) = Неопределено Тогда
//Если значения еще нет, то добавим его
МассивДополнительный . Добавить ( ЭлементМ );
КонецЕсли;
КонецЦикла;
Сообщить ( СтрСоединить ( МассивДополнительный , «,» ));
// 2, 4, 7
Свертка Массива с помощью ТЗ (пример №3) в 1С 8.3:
Процедура Свертка_Массива_через_ТаблицуЗначений () Экспорт
МассивДляСвертки = Новый Массив ;
МассивДляСвертки . Добавить ( 2 );
МассивДляСвертки . Добавить ( 4 );
МассивДляСвертки . Добавить ( 7 ); // Массив: (2, 4, 7)
ТЗ = Новый ТаблицаЗначений ;
ТЗ . Колонки . Добавить ( «ВыгружаемоеЗначение» );
// Заполняем строки ТЗ (по количеству элементов массива)
Для А = 0 По МассивДляСвертки . ВГраница () Цикл
ТЗ . Добавить ();
КонецЦикла;
// Загружаем Массив в ТЗ и сворачиваем его
ТЗ . ЗагрузитьКолонку ( МассивДляСвертки , «ВыгружаемоеЗначение» );
ТЗ . Свернуть ( «ВыгружаемоеЗначение» );
// Если нужно — сортируем
//ТЗ.Сортировать(«ВыгружаемоеЗначение»);
// Выгружаем ТЗ в Массив
МассивДляСвертки = ТЗ . ВыгрузитьКолонку ( «ВыгружаемоеЗначение» );
Сообщить ( СтрСоединить ( МассивДляСвертки , «,» ));
// 2, 4, 7
ТаблицаЗначений
Метод Свернуть()
Метод Свернуть() сворачивает таблицу значений по указанным колонкам группировки. При этом, строки, у которых совпадают сочетания значений в колонках, указанных в параметре КолонкиГруппировок , сворачиваются в одну строку, а значения этих строк, хранящиеся в колонках, указанных параметре КолонкиСуммирования , суммируются. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.
Внимание! Списки колонок не должны пересекаться, т.е. одна и та же колонка не может одновременно присутствовать в параметрах КолонкиГруппировок и КолонкиСуммирования
Доступность
Версия | Поддержка |
---|---|
8.1 | Сервер, Клиент, Внешнее соединение |
8.2 | Сервер, Толстый клиент, Внешнее соединение |
8.3 | Сервер, Толстый клиент, Внешнее соединение, Мобильный автономный сервер, Мобильное приложение |
Пример использования
Пример кода с использованием метода Свернуть() :
//создаем таблицу товаров тз = Новый ТаблицаЗначений; тз.Колонки.Добавить("Код"); тз.Колонки.Добавить("Наименование"); тз.Колонки.Добавить("Категория"); тз.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число")); //добавляем товары и услуги НоваяСтрока = тз.Добавить(); НоваяСтрока.Код = "001"; НоваяСтрока.Наименование = "Стул деревянный"; НоваяСтрока.Категория = "Товары"; НоваяСтрока.Сумма = 8000; НоваяСтрока = тз.Добавить(); НоваяСтрока.Код = "002"; НоваяСтрока.Наименование = "Стол деревянный"; НоваяСтрока.Категория = "Товары"; НоваяСтрока.Сумма = 10000; НоваяСтрока = тз.Добавить(); НоваяСтрока.Код = "101"; НоваяСтрока.Наименование = "Сборка мебели"; НоваяСтрока.Категория = "Услуги"; НоваяСтрока.Сумма = 1200; //просуммируем таблицу по категориям товара тз.Свернуть("Категория", "Сумма"); Для каждого СтрокаТЧ ИЗ тз Цикл Сообщить("" + СтрокаТЧ.Категория + " на сумму " + СтрокаТЧ.Сумма); КонецЦикла; //Товары на сумму 18 000 //Услуги на сумму 1 200
Как в 1с свернуть таблицу значений
Рассмотрим два способа в 1с свернуть таблицу значений. Для первого воспользуемся методом таблицы значений Свернуть, для второго используем Запрос.
Свернуть с использованием метода таблицы значений
У таблицы значений существует специальный метод Свернуть. Он позволяет группировать строки по полям, указанным в первом параметре и суммировать значения полей, указанных во втором параметре.
Свернуть(, )
Пример 1. Пусть у нас существует таблица значений с колонками Номенклатура, Цена, Количество, Сумма. Необходимо в 1с свернуть таблицу значений по колонкам Номенклатура и Цена, просуммировав при этом данные в колонках Количество и Сумма.
Таблица.Свернуть("Номенклатура, Цена", "Количество, Сумма");
Также стоит отметить следующие особенности метода Свернуть:
- Работает только НаСервере (как и любые действия с таблицами значений);
- Прост в реализации;
- Может суммировать значения, но не может получать минимум, максимум, среднее и т.д.
Свернуть таблицу значений при помощи запроса
Если для вашей задачи недостаточно метода Свернуть, то можно воспользоваться возможностями языка запросов, для свертки таблицы значений. Например, вам необходимо получить среднее или максимум, по значениям колонки.
Для свертки таблицы значений запросом необходимо:
- Таблицу значений передать параметром в запрос;
- Сгруппировать по нужным полям,
- Применить агрегатные функции к нужным полям (сумма, максимум, минимум, среднее);
- Выгрузить результат запроса в таблицу значений.
Пример 2. Пусть у нас существует таблица значений с колонками Номенклатура, Цена, Количество, Сумма. Необходимо в 1с свернуть таблицу значений по колонке Номенклатура, по колонке Цена получить среднее значение, просуммировать данные в колонках Количество и Сумма.
Запрос = Новый Запрос; Запрос.УстановитьПараметр("Таблица", Таблица); Запрос.Текст = "ВЫБРАТЬ | Таблица.Номенклатура КАК Номенклатура, | Таблица.Цена КАК Цена, | Таблица.Количество КАК Количество, | Таблица.Сумма КАК Сумма |ПОМЕСТИТЬ Таблица |ИЗ | &Таблица КАК Таблица |; | |/////////////////////////////////////////// |ВЫБРАТЬ | Таблица.Номенклатура КАК Номенклатура, | СРЕДНЕЕ(Таблица.Цена) КАК Цена, | СУММА(Таблица.Количество) КАК Количество, | СУММА(Таблица.Сумма) КАК Сумма |ИЗ | Таблица КАК Таблица | |СГРУППИРОВАТЬ ПО | Таблица.Номенклатура"; Таблица = Запрос.Выполнить().Выгрузить();
Особенности данного метода:
- Работает только НаСервере (как и любые действия с таблицами значений и запросами);
- Более сложен в реализации;
- Более универсален, в сравнении с предыдущим.
Скачать обработку с двумя этими примерами можно: Здесь