Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

Инструкция по загрузке из Excel в 1C для программиста

Нужно загрузить большой объем данных из Экселя в 1С? Настроить постоянную загрузку накладных и товаров? Обратитесь к нам! Оставьте заявку в форме выше или позвоните нам по телефону +7 499 350 29 00.

Несомненно, одним из самых распространенных способов массового занесения информации в информационную систему является загрузка информации в 1С 8.3 из Excel. Ниже я рассмотрю пошаговое создание обработки загрузки данных и дам ссылку на скачивание её.

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

Самые популярные данные, которые требуются для загрузки в 1С из Excel:

  • номенклатура и её штрих-коды, в том числе с картинками;
  • накладные от поставщика;
  • прайс-листы от контрагентов;
  • начальные остатки по складам или бухгалтерскому учету.

MS Excel — программа для работы с электронными таблицами, созданная компанией  Microsoft. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и язык макропрограммирования VBA. Excel является одним из наиболее популярных приложений в мире.

Из Excel в 1С 8.3

Обработку мы будем делать универсальную, подобно той, что мы делали для загрузки файлов csv в 1С.

1. Создание обработки загрузки и её формы

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

Интерфейс программы

Тут мы особо ничего не будем придумывать, сделаем поле ввода для выбора файла на диске, кнопку «Прочитать» для чтения файла и заполнения табличной части.

2 Обработчик выбора файла

Тут всё сделаем как в загрузке из CSV:

При нажатии на выбор файла необходимо отображать диалог выбора файла в ОС. Сделать это очень просто. Необходимо на обработчик “НачалоВыбора” в поле ввода файла указать следующий код:

ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Заголовок = “Выберите файл”;

Если ДиалогВыбора.Выбрать() Тогда
ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
КонецЕсли;

3 Обработка данных из Excel и загрузка в 1С 8.3

Для начала мы очищаем информацию в таблице, находим файл на диске, подключаемся к Excel через COM-объект и проводим все технические настройки:

//очищаем таблицу и удаляем колонки
Таблица.Очистить();
Таблица.Колонки.Очистить();
ЭлементыФормы.Таблица.Колонки.Очистить();
//подключаемся к эксель
Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла);
Состояние("Обработка файла Microsoft Excel...");
Исключение
Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

Попытка
//Открываем необходимый лист
Excel.Sheets(1).Select(); // лист 1, по умолчанию
Исключение
//Закрываем Excel
Excel.ActiveWorkbook.Close();
Excel = 0;
Сообщить("Файл "+Строка(ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!");
ОтменитьТранзакцию();
Возврат;
КонецПопытки;

//Получим количество строк и колонок.
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
Если Версия = "8" тогда
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
Конецесли;

После того как мы получили все данные из файла, мы считываем 1 строку файла и генерируем колонки на форме с наименованиями из файла:

//считываем первую строку и генерируем колонки

Сч = 1;
Пока ЗначениеЗаполнено(Excel.Cells(1, Сч).Text) Цикл
ИмяКолонки = Excel.Cells(1, Сч).Text;
ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ",""); // убираем из имени колонок пробелы
Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки);
НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки);
НоваяКолонка.Данные = ИмяБезПробелов;
Сч = Сч + 1;
КонецЦикла;

После формирования колонок считываем тело файла эксель и построчно заносим данные в табличное поле:

Для НС = 2 по ФайлСтрок Цикл // НС указываем с какой строки начинать обработку

Состояние("Файл "+Строка(ИмяФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %");

ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break

НоваяСтрока = Таблица.Добавить();

Для НомерКолонки = 1 по Таблица.Колонки.Количество() Цикл
//заполняем строку значениями
ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Text;
ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя;
НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
КонецЦикла;

КонецЦикла;

В результате мы получаем загруженные данные из excel c такими же колонками:

Результат загрузки

Не забудьте закрыть Эксель в 1С после выполнения процедур с помощью кода:

Excel.DisplayAlerts = 0; 
Excel.Quit();
Excel.DisplayAlerts = 1;

Универсальную загрузку из excel в 1C можно бесплатно скачать тут.

Обратите внимание, эта обработка написана в режиме «обычного приложения 1С».

Если у Вас всё же возникли проблемы с загрузкой, Вы можете обратиться за помощью к опытному программисту 1C.

Видеоурок по загрузке товаров в 1С из файлов Excel:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 64 на “Инструкция по загрузке из Excel в 1C для программиста
  1. Ссылка на файл обработки не работает, перезагрузите, пожалуйста!

    Ответить

    • Вроде работает.
      Попробуйте правой кнопкой — Сохранить как…

      Ответить

      • Дайте код лёгкой для импорта таблицы 1С.Там перечисление, ФИО, дата

        Ответить

    • Поместил в zip архив.
      Теперь любой браузер должен понять что по ссылке нужно скачать файл 🙂

      Ответить

  2. Добрый день!
    При открытии обработки, открывается пустая страница.

    Ответить

    • Здравствуйте!

      Обработка разработана на обычных формах, а у вас (как я понимаю) управляемое приложение.

      Ответить

      • Зравствуйте, а есть такая же статья для управляемых форм?

        Ответить

  3. Файл выбирается, происходит обработка, но вот в таблице он не отображается

    Ответить

    • А заголовки в файле есть? Какие они? Лист в эксель один?

      Ответить

  4. Большое спасибо!!! Очень помогло

    Ответить

  5. Данная обработка не работает с Бухгалтерией предприятия 8.3. Вываливается пустое окно. Видимо это от 8.2

    Ответить

    • Запусти в режиме Управляемая прикладная программа

      Ответить

  6. Подскажите, а как загружать в 1с 8.3 из екселя формата xlsb это двоичные данные.

    Ответить

    • К сожалению, с такими файлами не имел дело. А сохранить в обычный файл невозможно?

      Ответить

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

    Ответить

    • Добрый день, Дмитрий.

      А какую ошибку выдает?
      Я на практике загружал и 50 и 100 тысяч товаров — всё было отлично.

      Ответить

  8. Спасибо. Полезная инфа. Непонятно как работать с методами и свойствами объекта Excel(который вы создавали в коде). Я говорю о таких методах, как, например, Excel.WorkBooks.Open(ИмяФайла); Где взять описание этого метода Open() объекта Excel.WorkBooks. И какой тип будет иметь объект Excel.WorkBooks?

    Ответить

  9. Здравствуйте. Есть проблема, при нажатии на кнопку «Выбрать» выдает ошибку, не понимаю как фиксить…

    »
    {Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Выбрать)
    Если ДиалогВыбора.Выбрать() Тогда
    по причине:
    Использование синхронных методов на клиенте запрещено!
    «

    Ответить

    • Добрый день!

      Код в посте приведен для старого режима работы 1С.
      Ваша конфигурация работает в «асинхронном режиме».

      Выхода для вас два:

      1. Переписать код вызова диалога с помощью «оповещений».

      2. Включить в свойствах корня конфигурации поддержку синхронных вызовов.

      Более подробно:
      https://programmist1s.ru/ispolzovanie-modalnyih-okon-v-dannom-rezhime-zapreshheno/

      Ответить

  10. а Ексель закрывать не надо в конце?

    Ответить

    • Конечно нужно. Спасибо за замечание)
      Добавил в статью)

      Ответить

  11. Можете эту обработку переделать для управ.форм

    Ответить

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

      Ответить

    • Обработка написана скорее для программистов, я думаю у них не составит труда переписать её 🙂

      А для пользователей я бы рекомендовал универсальную загрузку от 1с:

      https://programmist1s.ru/zagruzka-nomenklaturyi-v-1s-8-3-iz-excel-ili-dbf/

      Ответить

  12. Здравствуйте. Вы рассматриваете загрузку из Excel в 1C, а есть ли пример кода или готовая обработка, которая бы наоборот выгружала данные из 1С в Excel. Заранее спасибо за ответ)))

    Ответить

    • Здравствуйте, Нара.

      Там очень много вариантов выгрузки из 1С типовыми способами. Вот здесь некоторые расписаны — https://programmist1s.ru/vyigruzka-dannyih-iz-1s/

      Ответить

      • А можно ли где-нибудь скачать готовую обработку? Я пока новичок и не очень хорошо понимаю как это делать самостоятельно)

        Ответить

        • Готовых нет, нужно понимать какие данные грузить, в зависимости от этого уже подбирать инструмент

          Ответить

  13. Если ДиалогВыбора.Выбрать() Тогда
    ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
    Иначе
    возврат;
    КонецЕсли;

    Ответить

  14. так будет правильней…

    Ответить

  15. А что за транзакцию вы там отменяете? Вроде она нигде не начиналась…

    Ответить

    • Да, позаимствовала код у автора, но вот эту строку «Отменить транзакцию» я убрала.

      Ответить

  16. обработка не подходит к версии ут 11.3 как написано у вас
    http://prntscr.com/gpfiqc

    Ответить

    • Это обработка не подключается как внешняя, открывайте её просто «Файл — Открыть»

      Ответить

  17. благодарю!

    Ответить

  18. при выборе установка цен номенклатуры вылетает окно с выбором изменение цен http://prntscr.com/gpfkvo
    а у вас на видео можно выбрать тип цен

    Ответить

  19. можно файл ексел загрузить

    Ответить

  20. Что делать если программа не видит колонки в табличном документе?

    Ответить

  21. В 8.3.11 уже не работает ТАБЛИЦА.КОЛОНКИ!!!

    Ответить

  22. У меня ни чего не работает!

    Ответить

  23. А есть можно узнать как сделать подобное,только загрузку производить из OpenOffice Calc ?

    Ответить

  24. Однозначно ПЛЮС…

    Ответить

  25. спасибо

    Ответить

  26. в какой модуль конфигурации нужно писать 3 пункт? в модуль обьекта обработки?

    Ответить

  27. Доброго времени суток!
    Обработка читает данные,но чуть дописал что бы она замещала данные у меня (РегистрНАкопления) она не загружает только читает и выдаёт ошибку:
    Ошибка при вызове метода контекста (Записать): Несоответствие типов (параметр номер ‘1’)

    Ответить

  28. &НаСервере
    Процедура ЗагрузитьДанные(Стр)
    Справочник = Справочники.Страны;
    НовСтрока = Справочник.СоздатьЭлеменнт();
    НовСтрока.Наименование = Стр;
    НовСтркоа.Запсиать();
    КонецПроцедуры
    &НаКлиенте
    Процедура ЗагрузитьДанные(Команда)
    Excel = Новый COMОбъект(«Excel.Application»);
    Excel.WorkBooks.Open(«Указываем путь файла, где находится наш файл»);
    Состояние(«Обработка файла Microsoft Excel»);
    ExcelЛист = Excel.Sheets(1); //Выбираем лист Excel
    Для СтрокаExcel = 2 По 50 Цикл
    Стр = ExcelЛист.Cells(СтрокаExcel,2).Text;
    ЗагрузитьДанные(Стр);
    КонецЦикла;
    Excel.WorkBooks.Close();
    Excel = 0;
    КонецПроцедуры

    Ответить

  29. Выбор фото из представленного списка и его сохранение в справочнике
    &НаКлиенте
    Процедура ФотоНаФорме Нажатие(Элемент,СтандартнаяОбработка)
    ЗагрузкаФото = Новый ОписаниеОповещения(«ВыборФайла»,ЭтотОбъект);
    НачатьПомещениеФайла(ЗагрузкаФото,,,Истина,УникальныйИдентификатор);
    КонецПроцедуры
    &НаКлиенте
    Процедура ВыборФайла(Результат,Адрес,ИмяВыбранногоФайла,ДополнительныеПараметры) Экспорт
    Если Не Результат = Неопределенно Тогда
    ФотоНаФорме = Адрес;
    КонецЕсли;
    КонецПроцедуры

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
    ФотоНаФорме = ПолучитьНавигационнуюСсылку(Объект.Ссылка,»Фотография»);
    КонецПроцедуры
    &НаСервере
    Процедура ПередЗаписьюНаСервере (Отказ,ТекущийОбъект,ПараметрыЗаписи)
    Если ЭтоАдресВременногоХранилища(ФотоНаФОрме) Тогда
    ТекущийОбъект.Фотография = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(ФотоНаФорме));
    КонецЕсли;
    КонецПроцедуры

    Ответить

  30. регистрация пользователей
    &НаСервере
    Функция РегистрацияНаСервере()
    Если Пароль = ПовторитьПароль
    Тогда
    // пишем в справочник
    НП = Справочники.ПользователиИБ.СоздатьЭлемент();
    НП.Наименование = логин;
    НП.Фамилия = фамилия;
    НП.Имя = Имя;
    НП.Отчество = Отчество;
    НП.Email = Email;
    НП.Записать();
    // пишем логин и пароль
    НПК = ПользователиИнформационнойБазы.СоздатьПользователя();
    НПК.Имя = Логин;
    НПК.ПолноеИмя = Фамилия + » » + Имя;
    НПК.Пароль = Пароль;
    НПК.Роли.Добавить(Метаданные.Роли.Сотрудник);
    НПК.Записать();
    Возврат «Все записано»;
    Иначе Сообщить(«Пароли не совпадают»);
    КонецЕсли;
    КонецФункции

    &НаКлиенте
    Процедура Регистрация(Команда)
    РезультатРегистрации = РегистрацияНаСервере();
    Если РезультатРегистрации = «Все записано»
    Тогда
    ОткрытьФорму(«ОбщаяФорма.СпасибоЗаРегистрацию»);
    Иначе Сообщить(«Что-то пошло не так…»);
    КонецЕсли;
    КонецПроцедуры

    Ответить

  31. работа с документом
    &НаКлиенте
    Процедура КоличествоПриИзменении(Элемент)
    Количество = Объект.Количество;
    Если Количество > 3 Тогда

    Сообщить(«Максимальное количество дней — 3»);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура заказКоличествоПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
    СтрокаТабличнойЧасти.Итого = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена — (
    СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Скидка/100);

    КонецПроцедуры

    &НаКлиенте
    Процедура заказЦенаПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
    СтрокаТабличнойЧасти.Итого = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена — (
    СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Скидка/100);
    КонецПроцедуры

    &НаКлиенте
    Процедура заказСкидкаПриИзменении(Элемент)

    СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
    СтрокаТабличнойЧасти.Итого = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена — (
    СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Скидка/100);

    КонецПроцедуры

    &НаСервере
    Процедура заказТипБилетаПриИзмененииНаСервере(ТипБилета,Цена)
    Если ТипБилета = Перечисления.ТипБилета.Взрослый Тогда
    Цена = 3000;
    ИначеЕсли ТипБилета = Перечисления.ТипБилета.Детский Тогда
    Цена = 1500;
    ИначеЕсли ТипБилета = Перечисления.ТипБилета.Льготный Тогда
    Цена = 2000;
    КонецЕсли

    КонецПроцедуры

    &НаКлиенте
    Процедура заказТипБилетаПриИзменении(Элемент)

    СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
    Если Объект.Количество = 1 Тогда
    СтрокаТабличнойЧасти.Скидка = 10;
    ИначеЕсли Объект.Количество = 2 Тогда
    СтрокаТабличнойЧасти.Скидка = 20;
    ИначеЕсли Объект.Количество = 3 Тогда
    СтрокаТабличнойЧасти.Скидка = 30;
    КонецЕсли;

    заказТипБилетаПриИзмененииНаСервере(СтрокаТабличнойЧасти.ТипБилета,СтрокаТабличнойЧасти.Цена);
    КонецПроцедуры

    Ответить

  32. Спасибо большое! Очень универсальненько)

    Ответить

  33. Здравствуйте! А такая же обработка для обычного приложения есть? Спасибо

    Ответить

  34. Добрый день! Подскажите, при импорте из Excel, штрихкоды загружаются в виде решеток «##########», как поправить не исправляя файл Excel?

    Ответить

    • Заменил Excel.Cells(Row,Column).Text на Excel.Cells(Row,Column).Value

      Ответить

  35. Отвратительный разбор. Какой уникум додумался писать в разборе Как загрузить данные из Excel про разбор на совершенно другую тему? Я задал конкретный вопрос и ищу на него конкретный ответ, а не же что мне скажут «сделайте как в другом разборе». Вы пишете инструкцию для работы с Excel, так вот, пожалуйста, пишите подробно от А до Я что нужно делать конкретно на данном примере, а не делая вставки а ля «чтобы включить стиральную машинку в розетку, нужно поступить так же как мы поступали в другой инструкции при подключении микроволновки». Если не умеете обучать, нечего вообще браться. Только засоряете время обучающихся новичков бесполезным шлаком.

    Ответить

    • Ты предъявы свои нелепые кидать будешь, когда дашь хоть что-то взамен за полученную БЕСПЛАТНУЮ информацию. А если не хватает извилин переварить суть информации — проходи мимо, автор ничего тебе не обязан объяснять и тем более не обязан соответствовать твоим воспалённым фантазиям, Вася.

      Ответить

  36. Функция GETПолучить(Запрос)

    Запрос = Новый Запрос;
    Запрос.Текст = «ВЫБРАТЬ
    | Пользователи.Наименование КАК Наименование,
    | Пользователи.Пароль КАК Пароль
    |ИЗ
    | Справочник.Пользователи КАК Пользователи»;

    тзПрайс = Запрос.Выполнить().Выгрузить();

    Строка64 = XMLСтрока(Новый ХранилищеЗначения(тзПрайс, Новый СжатиеДанных(9)));

    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.УстановитьТелоИзСтроки(Строка64);
    Возврат Ответ;
    КонецФункции

    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    ПолучитьПользователей();

    КонецПроцедуры

    &НаСервере
    Процедура ПолучитьПользователей()

    Попытка
    Запрос = Новый HTTPЗапрос(«/hs/user/get»);
    #Если МобильноеприложениеСервер Тогда
    Подключение = Новый HTTPСоединение(«172.16.2.1//MOB»);
    #Иначе
    Подключение = Новый HTTPСоединение(«localhost/MOB»);
    #КонецЕсли

    Ответ = Подключение.Получить(Запрос);

    Строка64 = Ответ.ПолучитьТелоКакСтроку();

    Хранилище = XMLЗначение(Тип(«ХранилищеЗначения»),Строка64);

    тзПрайс = Хранилище.Получить();

    Исключение
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = «ОШИБКА: » + ОписаниеОшибки();
    Сообщение.Сообщить();
    Возврат;
    КонецПопытки;

    Для Каждого СтрокаТЗ Из тзПрайс Цикл
    Пользователь = Справочники.Пользователи.НайтиПоНаименованию(СтрокаТЗ.Наименование);
    Если Пользователь.Пустая() Тогда
    НовПоль = Справочники.Пользователи.СоздатьЭлемент();
    НовПоль.Наименование = СтрокаТЗ.Наименование;
    НовПоль.Пароль = СтрокаТЗ.Пароль;
    Попытка НовПоль.Записать();
    Поль = НовПоль.Ссылка;
    Исключение
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = «ОШИБКА: » + ОписаниеОшибки();
    Сообщение.Сообщить();
    Возврат;
    КонецПопытки;

    КонецЕсли;
    КонецЦикла;

    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = «Успешно обработано: » + тзПрайс.Количество() + » строк»;
    Сообщение.Сообщить();
    Возврат;

    КонецПроцедуры

    Ответить

  37. Добрый день.
    У меня ваш код не работает. Выдает ошибку Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Invalid class string. Подскажите пожалуйста, в чём проблема.

    Ответить

  38. &НаКлиенте
    Процедура ТестовыйСценарий1(Команда)

    ЗапуститьСистему(«C:\Program Files (x86)\1cv8\8.3.15.1778\bin\1cv8.exe ENTERPRISE /F C:\Users\слушатель\Documents\InfoBase2 /N Администраторы /TESTCLIENT [-TPort]»);

    ТестКлиент = Новый ТестируемоеПриложение();
    МаксИтераций = 60;
    Для Счетчик = 1 По МаксИтераций Цикл

    Попытка
    ТестКлиент.УстановитьСоединение();
    Прервать;

    Исключение

    // Вывести только последнее сообщение.
    Если Счетчик = МаксИтераций Тогда
    Сообщить(ОписаниеОшибки());
    Возврат;

    КонецЕсли;

    КонецПопытки;

    КонецЦикла;

    ГлавноеОкноТестируемого = ТестКлиент.НайтиОбъект(Тип(«ТестируемоеОкноКлиентскогоПриложения»));
    ГлавноеОкноТестируемого.Активизировать();

    ГлавноеОкноТестируемого.ВыполнитьКоманду(«e1cib/command/Справочник.Сотрудники.Создать»);
    ТестКлиент.ОжидатьОтображениеОбъекта(Тип(«ТестируемаяФорма»), «Сотрудники*»);
    ТестируемаяФорма = ТестКлиент.НайтиОбъект(Тип(«ТестируемаяФорма»),»Сотрудники*»);
    ТестируемаяФорма.Активизировать();

    ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемоеПолеФормы»), «Ф.И.О.»);
    ЭлементФормы.Активизировать();
    ЭлементФормы.ВвестиТекст(«Тестовый Сотрудник»);

    ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемоеПолеФормы»), «Имя»);
    ЭлементФормы.Активизировать();
    ЭлементФормы.ВвестиТекст(«Тестовый Сотрудник»);
    ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемаяКнопкаФормы»), «Записать и закрыть»);
    ЭлементФормы.Нажать();
    Сообщить(«Тестовый сценарий №1 пройден»);

    КонецПроцедуры

    Ответить

  39. ЗапуститьСистему(«Расположение 1С ENTERPRISE /F Расположение информационной базы /TESTCLIENT [-TPort]»);

    ТестКлиент = Новый ТестируемоеПриложение();
    ВремяОкончания = ТекущаяДата() + 15;

    Подключен = Ложь;
    Пока Не ТекущаяДата() >= ВремяОкончания Цикл
    Попытка
    ТестКлиент.УстановитьСоединение();
    Подключен = Истина;
    Прервать;
    Исключение
    КонецПопытки;
    КонецЦикла;

    Если Не Подключен Тогда
    Сообщить(«Не удалось установить соединение»);
    Возврат;
    КонецЕсли;

    ГлавноеОкноТестируемогоПриложения = ТестКлиент.НайтиОбъект(Тип(«ТестируемоеОкноКлиентскогоПриложения»));
    ГлавноеОкноТестируемогоПриложения.Активизировать();

    ГлавноеОкноТестируемогоПриложения.ВыполнитьКоманду(«e1cib/command/Справочник.Дроны.Создать»);
    ТестКлиент.ОжидатьОтображениеОбъекта(Тип(«ТестируемаяФорма»), «Дроны*»);
    ТестируемаяФорма = ТестКлиент.НайтиОбъект(Тип(«ТестируемаяФорма»),»Дроны*»);
    ТестируемаяФорма.Активизировать();

    ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемоеПолеФормы»), «Наименование»);
    ЭлементФормы.Активизировать();
    ЭлементФормы.ВвестиТекст(«Дрон 4»);

    ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемоеПолеФормы»), «Статус»);
    ЭлементФормы.Активизировать();
    ЭлементФормы.ВвестиТекст(«В серийном производстве»);

    ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемаяКнопкаФормы»), «Записать и закрыть»);
    ЭлементФормы.Нажать();
    Сообщить(«Тестовый сценарий завершен»);

    Ответить

  40. Текущиеданные = элементы.табчасть.текущиеданные;
    Если текущиеданные = неопределенно Тогда
    Элементы.табчасть.отборстрок = неопределенно;
    Иначе
    ТекКонтрагент= Текданные.полеотбора;
    Элементы.табчасть.отборстрок= Новый фиксированнаяструктура(«полеотбора»,реквизитвыборки);
    Конецесли;

    Ответить

  41. Читаю «Обработку мы будем делать универсальную» — ну круто, думаю, без CОМ-объектов. Но нет, оказалась не такая уж универсальная)

    Ответить

  42. Есть ли возможность работы с 1С:Предприятие 8.3? Нигде не могу найти информацию, всё отдам

    Ответить

  43. Для соединения информационной базы 1С с файлом Microsoft Office и LibreOffice используют COM-объекты. Можно ли работать с МойОфис в системе 1C через COM-соединения?

    Ответить

Добавить комментарий:

Ваш адрес email не будет опубликован.