Разработка и Конфигурация · 10 мин
Как вывести таблицу умножения в 1С
Как вывести таблицу умножения в 1С: пример кода на встроенном языке, вывод в табличный документ, консоль и сообщения, типичные ошибки и проверка результата.
Таблица умножения — классическая учебная задача, которая одновременно является удобным способом освоить циклы, вложенные итерации и вывод данных во встроенном языке 1С. Разобравшись с ней, вы научитесь формировать табличные документы, выводить сообщения пользователю и работать со строковыми функциями — эти навыки напрямую применяются в реальной разработке отчётов и печатных форм.
Вывести таблицу умножения в 1С можно несколькими способами: через окно сообщений, через табличный документ с последующим показом на экране или печатью, через запись в текстовый файл. Выбор зависит от цели: для быстрой проверки кода достаточно сообщений, а для красивого результата, который можно сохранить или распечатать, нужен табличный документ.
Ниже разобраны рабочие примеры кода для управляемого приложения (платформа 8.3), способы запуска кода без создания собственной конфигурации и типичные ошибки новичков. Все примеры можно выполнить в консоли кода или во внешней обработке.
Где выполнять код: консоль, обработка или конфигуратор
Прежде чем писать код, нужно определиться, где его запускать. Самый простой путь без изменения конфигурации — консоль кода (внешняя обработка, которую легко найти в публикациях по 1С) или создание собственной внешней обработки через меню «Файл — Новый — Внешняя обработка» в конфигураторе.
Если вы учитесь на пустой конфигурации, можно добавить общую команду или обработку с кнопкой, в обработчике которой размещается код. В типовых конфигурациях без режима отладки и прав разработчика запуск произвольного кода может быть недоступен — это ограничение безопасности, а не ошибка.
Простой вывод через Сообщить()
Самый быстрый вариант — вывести строки таблицы умножения в панель сообщений. Используются два вложенных цикла: внешний отвечает за первый множитель, внутренний — за второй.
Для ПервыйМножитель = 1 По 10 Цикл
Для ВторойМножитель = 1 По 10 Цикл
Произведение = ПервыйМножитель * ВторойМножитель;
Сообщить(Строка(ПервыйМножитель) + " x "
+ Строка(ВторойМножитель) + " = "
+ Строка(Произведение));
КонецЦикла;
КонецЦикла;
После выполнения в панели сообщений появится 100 строк вида «3 x 7 = 21». Такой способ хорош для проверки логики, но неудобен для восприятия: строки идут сплошным списком, без сетки. Кроме того, при большом объёме вывода панель сообщений работает медленно.
Чтобы сгруппировать вывод по блокам, можно выводить одну строку на каждый первый множитель, собирая значения через разделитель:
Для ПервыйМножитель = 1 По 10 Цикл
СтрокаРезультата = "";
Для ВторойМножитель = 1 По 10 Цикл
СтрокаРезультата = СтрокаРезультата
+ Строка(ПервыйМножитель * ВторойМножитель) + " ";
КонецЦикла;
Сообщить(СтрокаРезультата);
КонецЦикла;
Вывод в табличный документ с форматированием
Для аккуратного результата используется объект ТабличныйДокумент. Он позволяет записывать значения в ячейки по координатам, задавать границы, выравнивание и затем показать документ пользователю или отправить на печать.
ТабДок = Новый ТабличныйДокумент;
Для НомерСтроки = 1 По 10 Цикл
Для НомерКолонки = 1 По 10 Цикл
Область = ТабДок.Область(НомерСтроки, НомерКолонки);
Область.Текст = Строка(НомерСтроки * НомерКолонки);
Область.ГоризонтальноеПоложение =
ГоризонтальноеПоложение.Центр;
КонецЦикла;
КонецЦикла;
ТабДок.Показать("Таблица умножения");
Метод Область(Строка, Колонка) возвращает ячейку по координатам, свойство Текст записывает значение. Метод Показать() открывает документ в отдельном окне — оттуда его можно сохранить в Excel, PDF или распечатать стандартными средствами платформы.
Если нужна таблица с «шапкой» (первый множитель по вертикали, второй по горизонтали), добавьте заголовочную строку и колонку: в ячейку (1, 1) можно поместить знак «×», в первую строку — значения второго множителя, в первую колонку — первого, а произведения записывать со смещением на единицу.
- 1Создайте объект: ТабДок = Новый ТабличныйДокумент
- 2Организуйте два вложенных цикла от 1 до 10
- 3Записывайте произведение в ячейку через ТабДок.Область(Строка, Колонка).Текст
- 4При необходимости задайте выравнивание и границы ячеек
- 5Вызовите ТабДок.Показать() и проверьте результат на экране
Вывод в виде привычной «квадратной» таблицы Пифагора
Классическая таблица Пифагора — это сетка, где на пересечении строки и столбца стоит произведение. Для неё удобно сначала сформировать заголовки, а затем заполнять тело таблицы.
ТабДок = Новый ТабличныйДокумент;
// Заголовки
Для Индекс = 1 По 10 Цикл
ТабДок.Область(1, Индекс + 1).Текст = Строка(Индекс);
ТабДок.Область(Индекс + 1, 1).Текст = Строка(Индекс);
КонецЦикла;
// Тело таблицы
Для СтрокаТаб = 1 По 10 Цикл
Для КолонкаТаб = 1 По 10 Цикл
ТабДок.Область(СтрокаТаб + 1, КолонкаТаб + 1).Текст =
Строка(СтрокаТаб * КолонкаТаб);
КонецЦикла;
КонецЦикла;
ТабДок.Показать("Таблица Пифагора");
Здесь все значения смещены на одну строку и одну колонку, чтобы освободить место под заголовки. Это типовой приём при программном формировании табличных документов: сначала шапка, потом данные с учётом смещения.
Прием с координатной записью в ТабличныйДокумент — тот же самый механизм, который используется при формировании реальных печатных форм и отчетов без СКД. Освоив таблицу умножения, вы фактически осваиваете программный вывод любых реестров и прайсов.
Сравнение способов вывода
Каждый вариант вывода имеет свою область применения. Таблица ниже помогает выбрать подходящий.
| Способ | Когда подходит | Ограничения |
|---|---|---|
| Сообщить() | Быстрая проверка логики, отладка | Нет форматирования, неудобно читать, нельзя распечатать |
| ТабличныйДокумент | Аккуратная таблица, печать, сохранение в файл | Требует больше кода, работает с отображением на клиенте |
| Текстовый файл | Передача результата в другую систему | Нужны права на запись, нет визуального форматирования |
Сравнение вариантов
Минимум кода, идеально для обучения циклам; не подходит для печати
Полноценная таблица с форматированием и печатью; требует понимания работы с областями
Подходит для выгрузки во внешний файл; результат — простой текст без сетки
Типичные ошибки и как их избежать
Начинающие разработчики при работе с этой задачей сталкиваются с повторяющимися проблемами. Большинство из них связано не с циклами, а с особенностями платформы.
Первая частая ошибка — перепутанные координаты в методе Область(): первым параметром идёт номер строки, вторым — колонки, а не наоборот, как в привычной записи «x, y». Вторая — вызов Показать() в серверном контексте, где интерактивные методы недоступны: код нужно выполнять на клиенте или в клиентской процедуре обработки.
Третья ошибка — использование конструкции Для Каждого ... Из ... там, где нужен счётчик. Для таблицы умножения нужен именно цикл со счётчиком Для ... По ... Цикл, потому что значения множителей используются в вычислениях.
Проверка результата и ограничения
После выполнения кода проверьте несколько контрольных точек: количество строк и колонок должно совпадать с диапазоном циклов, угловые значения должны быть корректными (1×1 = 1, 10×10 = 100), а значения на диагонали — квадратами чисел (1, 4, 9, 16 и так далее). Это быстрый способ убедиться, что циклы отработали правильно.
Учтите ограничения: панель сообщений при выводе сотен строк может работать медленно, а табличный документ с очень большим числом ячеек потребляет заметный объём памяти. Для учебной таблицы 10×10 это несущественно, но при масштабировании подхода на реальные отчёты стоит использовать макеты и построчный вывод.
Как проверить результат
10 строк и 10 колонок (плюс заголовки, если они есть)
Пропущены крайние значения — проверьте границы циклов
Левый верхний угол — 1, правый нижний — 100
Смещение на единицу — ошибка в начальных индексах
1, 4, 9, 16 ... 100
Значения не совпадают — перепутаны множители или координаты
Часто задаваемые вопросы
Можно ли вывести таблицу умножения без конфигуратора?
Да. Достаточно режима «Предприятие» и внешней обработки с консолью кода, открываемой через «Файл — Открыть». Изменять конфигурацию и снимать её с поддержки не требуется.
Почему метод Показать() выдаёт ошибку?
Метод интерактивный и доступен только в клиентском контексте. Если код выполняется в серверной процедуре, сформируйте табличный документ на сервере, верните его в клиентскую процедуру (например, через параметр или временное хранилище) и вызовите Показать() там.
Как сохранить результат в Excel?
Используйте метод ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX). Также готовый документ можно сохранить вручную из окна просмотра через стандартное меню сохранения платформы.
Как изменить диапазон, например, таблицу до 20?
Достаточно заменить верхнюю границу в обоих циклах: «Для Множитель = 1 По 20 Цикл». Логика кода не меняется, но помните, что число ячеек растёт квадратично — для 20 это уже 400 значений.
Чем таблица умножения полезна для изучения 1С?
Она охватывает ключевые базовые конструкции: вложенные циклы со счётчиком, арифметику, преобразование чисел в строки и программную работу с табличным документом — тот же механизм, что и в реальных печатных формах.
Что важно запомнить
Таблица умножения в 1С строится двумя вложенными циклами от 1 до 10. Для быстрой проверки используйте Сообщить(), для полноценного результата с печатью — ТабличныйДокумент с записью в ячейки по координатам и вызовом Показать() в клиентском контексте. Проверяйте результат по угловым значениям и диагонали.