Как внести тестовые данные в созданные объекты?
Для наполнения конфигурации «Семейный бюджет» тестовыми данными можно использовать несколько приёмов — от ручного ввода через пользовательский интерфейс до автоматизированной загрузки через код или внешние файлы. Ниже описаны основные способы вместе с примерами кода.
1. Ручной ввод через интерфейс
-
Справочники
– Откройте в режиме 1С:Предприятие справочник Номенклатура (или «Статьи доходов/расходов»).
– Нажмите «Создать» → заполните код, наименование, тип/категорию.
– Сохраните.
Повторите для всех справочников: Участники, Банковские счета. -
Документы
– Откройте документ Поступление дохода.
– Нажмите «Создать», введите дату, выберите статью дохода, участника, счёт и сумму.
– Проведите документ.
Аналогично — документ Расход и Перевод между счетами. -
Планирование
– Откройте документ Планирование бюджета, заполните период и табличную часть плановыми статьями.
Этот способ прост, но при большом объёме тестовых данных трудозатратен.
2. Автоматизация через внешнюю обработку
Создайте внешнюю обработку ЗагрузкаТестовыхДанных.epf с командой «Заполнить тестовыми данными» и модулем вида:
Процедура ЗаполнитьТестовыеДанные(Команда)
// 1. Справочники
Для Каждый Артикул Из Новый Массив("Продукты","Квартплата","Развлечения") Цикл
Эл = Справочники.СтатьиРасходов.СоздатьЭлемент();
Эл.Наименование = Артикул;
Эл.Записать();
КонецЦикла;
// 2. Участники
Для Каждый Имя Из Новый Массив("Мама","Папа","Ребёнок") Цикл
Эл = Справочники.Участники.СоздатьЭлемент();
Эл.Имя = Имя;
Эл.Записать();
КонецЦикла;
// 3. Счета
Эл = Справочники.БанковскиеСчета.СоздатьЭлемент();
Эл.Наименование = "Наличные"; Эл.Тип = "Наличные"; Эл.Записать();
Эл = Справочники.БанковскиеСчета.СоздатьЭлемент();
Эл.Наименование = "Карта"; Эл.Тип = "Карта"; Эл.Записать();
// 4. Документы доходов/расходов
Для Каждого i Из Новый Массив(1000,2000,1500) Цикл
Док = Документы.ПоступлениеДохода.СоздатьДокумент();
Док.Дата = НачалоМесяца(ТекущаяДата());
Док.СтатьяДохода = Справочники.СтатьиДоходов.ПолучитьЭлемент("Продукты");
Док.СчётПрихода = Справочники.БанковскиеСчета.ПолучитьЭлемент("Наличные");
Док.Сумма = i;
Док.Записать();
Док.Провести();
КонецЦикла;
// 5. Краткий отчет
Сообщить("Тестовые данные загружены");
КонецПроцедуры
– Добавьте на форму обработки кнопку, вызывающую эту процедуру.
– Запустите в режиме предприятия, нажмите «Заполнить тестовыми данными».
3. Загрузка из Excel/CSV
Если есть готовая таблица в Excel:
-
Создайте обработку с возможностью выбора файла через Диалог.ВыбораФайла().
-
Используйте ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.Прочитать("путь.xlsx");.
-
Преобразуйте строки TabDoc в ТаблицаЗначений:
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Наименование");
ТЗ.Колонки.Добавить("Количество");
...
Для Стр = 1 По TabDoc.КоличествоСтрок() Цикл
Нов = ТЗ.Добавить();
Нов.Наименование = TabDoc.ПолучитьЯчейку(Стр, 1).Значение;
Нов.Количество = TabDoc.ПолучитьЯчейку(Стр, 2).Значение;
КонецЦикла;
- Переберите ТЗ и создайте справочник/документ аналогично вручную.
4. Скрипты загрузки в фоновом режиме
Для больших объёмов данных лучше запускать загрузку в фоне (регламентное задание). В общем модуле:
&НаСервере
Процедура ЗагрузитьТестовыеДанныеВФоне(Параметры)
// тот же код создания справочников и документов
КонецПроцедуры
– Настройте регламентное задание: **Администрирование → РегламентныеЗадания**.
5. Использование метода ЗагрузитьКоллекцию()
Если у вас есть массив структур:
МассивСтруктур = Новый Массив;
Стр = Новый Структура("Наименование, Количество", "Молоко", 10);
МассивСтруктур.Добавить(Стр);
...
Спр = Новый ТаблицаЗначений;
// создаём колонки как в справочнике
Спр.ЗагрузитьКоллекцию(МассивСтруктур);
...
Для Каждого Эл Из Спр Цикл
Элемент = Справочники.Номенклатура.СоздатьЭлемент();
Элемент.Наименование = Эл.Наименование;
Элемент.Записать();
КонецЦикла;
Так быстрее создавать много элементов одним методом.
6. Комбинированный подход
– Внешняя обработка с выбором источника: ввод вручную, загрузка файла, программная генерация.
– Формы с чекбоксами «Загрузить справочники», «Загрузить документы», «Очистить данные» для управления процессом.
Все эти методы позволяют быстро наполнить созданные объекты тестовыми данными как для демо, так и для тестирования логики.