Инструкция по загрузке из Excel в 1C для программиста
Нужно загрузить большой объем данных из Экселя в 1С? Настроить постоянную загрузку накладных и товаров? Обратитесь к нам! Оставьте заявку в форме выше или позвоните нам по телефону +7 499 350 29 00.
Несомненно, одним из самых распространенных способов массового занесения информации в информационную систему является загрузка информации в 1С 8.3 из Excel. Ниже я рассмотрю пошаговое создание обработки загрузки данных и дам ссылку на скачивание её.
Данная инструкция написана для программистов, для пользователей 1С скорее подойдут следующие статьи:
- Загрузка данных штатными методами в 1С — Загрузка из Excel на примере прайс-листа.
- Если вам необходимо загрузить номенклатуру в 1С — пример загрузки товаров в 1С 8.3.
Самые популярные данные, которые требуются для загрузки в 1С из Excel:
- номенклатура и её штрих-коды, в том числе с картинками;
- накладные от поставщика;
- прайс-листы от контрагентов;
- начальные остатки по складам или бухгалтерскому учету.
MS Excel — программа для работы с электронными таблицами, созданная компанией Microsoft. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и язык макропрограммирования VBA. Excel является одним из наиболее популярных приложений в мире.
Обработку мы будем делать универсальную, подобно той, что мы делали для загрузки файлов 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. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Антон:
Ссылка на файл обработки не работает, перезагрузите, пожалуйста!
Программист 1С:
Вроде работает.
Попробуйте правой кнопкой — Сохранить как…
Ольга:
Дайте код лёгкой для импорта таблицы 1С.Там перечисление, ФИО, дата
Программист 1С:
Поместил в zip архив.
Теперь любой браузер должен понять что по ссылке нужно скачать файл 🙂
Марьяна:
Добрый день!
При открытии обработки, открывается пустая страница.
Программист 1С:
Здравствуйте!
Обработка разработана на обычных формах, а у вас (как я понимаю) управляемое приложение.
Аноним:
Зравствуйте, а есть такая же статья для управляемых форм?
Валерия:
Файл выбирается, происходит обработка, но вот в таблице он не отображается
Программист 1С:
А заголовки в файле есть? Какие они? Лист в эксель один?
Мария:
Большое спасибо!!! Очень помогло
Дмитрий:
Данная обработка не работает с Бухгалтерией предприятия 8.3. Вываливается пустое окно. Видимо это от 8.2
Mark:
Запусти в режиме Управляемая прикладная программа
Мария:
Подскажите, а как загружать в 1с 8.3 из екселя формата xlsb это двоичные данные.
Кирилл:
К сожалению, с такими файлами не имел дело. А сохранить в обычный файл невозможно?
Дмитрий:
Здравствуйте, Кирилл. Такой вопрос. С загрузкой файла разобрался, но не могу загрузить файл большого объема — порядка 1,5 тысяч строк в экселе. Как исправить не знаю. Подскажите
Кирилл:
Добрый день, Дмитрий.
А какую ошибку выдает?
Я на практике загружал и 50 и 100 тысяч товаров — всё было отлично.
Шамиль:
Спасибо. Полезная инфа. Непонятно как работать с методами и свойствами объекта Excel(который вы создавали в коде). Я говорю о таких методах, как, например, Excel.WorkBooks.Open(ИмяФайла); Где взять описание этого метода Open() объекта Excel.WorkBooks. И какой тип будет иметь объект Excel.WorkBooks?
Кирилл:
Описание методов и функций можно найти в официальной справке Microsoft:
https://docs.microsoft.com/en-us/office/vba/api/Excel.Workbooks.Open
Александр:
Здравствуйте. Есть проблема, при нажатии на кнопку «Выбрать» выдает ошибку, не понимаю как фиксить…
»
{Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Выбрать)
Если ДиалогВыбора.Выбрать() Тогда
по причине:
Использование синхронных методов на клиенте запрещено!
«
Кирилл:
Добрый день!
Код в посте приведен для старого режима работы 1С.
Ваша конфигурация работает в «асинхронном режиме».
Выхода для вас два:
1. Переписать код вызова диалога с помощью «оповещений».
2. Включить в свойствах корня конфигурации поддержку синхронных вызовов.
Более подробно:
https://programmist1s.ru/ispolzovanie-modalnyih-okon-v-dannom-rezhime-zapreshheno/
Юрий:
а Ексель закрывать не надо в конце?
Кирилл:
Конечно нужно. Спасибо за замечание)
Добавил в статью)
Шермат:
Можете эту обработку переделать для управ.форм
Игорь:
Да тоже, был бы очень признателен если переделали обработку для управляемых форм.
Кирилл:
Обработка написана скорее для программистов, я думаю у них не составит труда переписать её 🙂
А для пользователей я бы рекомендовал универсальную загрузку от 1с:
https://programmist1s.ru/zagruzka-nomenklaturyi-v-1s-8-3-iz-excel-ili-dbf/
Нара:
Здравствуйте. Вы рассматриваете загрузку из Excel в 1C, а есть ли пример кода или готовая обработка, которая бы наоборот выгружала данные из 1С в Excel. Заранее спасибо за ответ)))
Кирилл:
Здравствуйте, Нара.
Там очень много вариантов выгрузки из 1С типовыми способами. Вот здесь некоторые расписаны — https://programmist1s.ru/vyigruzka-dannyih-iz-1s/
Нара:
А можно ли где-нибудь скачать готовую обработку? Я пока новичок и не очень хорошо понимаю как это делать самостоятельно)
Кирилл:
Готовых нет, нужно понимать какие данные грузить, в зависимости от этого уже подбирать инструмент
Александр:
Если ДиалогВыбора.Выбрать() Тогда
ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
Иначе
возврат;
КонецЕсли;
Александр:
так будет правильней…
Дмитрий:
А что за транзакцию вы там отменяете? Вроде она нигде не начиналась…
Дана:
Да, позаимствовала код у автора, но вот эту строку «Отменить транзакцию» я убрала.
Сергей:
обработка не подходит к версии ут 11.3 как написано у вас
http://prntscr.com/gpfiqc
Кирилл:
Это обработка не подключается как внешняя, открывайте её просто «Файл — Открыть»
Сергей:
благодарю!
Сергей:
при выборе установка цен номенклатуры вылетает окно с выбором изменение цен http://prntscr.com/gpfkvo
а у вас на видео можно выбрать тип цен
алмаз:
можно файл ексел загрузить
ла ла ла:
Что делать если программа не видит колонки в табличном документе?
Жорик:
В 8.3.11 уже не работает ТАБЛИЦА.КОЛОНКИ!!!
Дмитрий:
У меня ни чего не работает!
arshavin:
А есть можно узнать как сделать подобное,только загрузку производить из OpenOffice Calc ?
kost:
Однозначно ПЛЮС…
Алексей:
спасибо
Ника:
в какой модуль конфигурации нужно писать 3 пункт? в модуль обьекта обработки?
Аноним:
Доброго времени суток!
Обработка читает данные,но чуть дописал что бы она замещала данные у меня (РегистрНАкопления) она не загружает только читает и выдаёт ошибку:
Ошибка при вызове метода контекста (Записать): Несоответствие типов (параметр номер ‘1’)
аноним:
&НаСервере
Процедура ЗагрузитьДанные(Стр)
Справочник = Справочники.Страны;
НовСтрока = Справочник.СоздатьЭлеменнт();
НовСтрока.Наименование = Стр;
НовСтркоа.Запсиать();
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьДанные(Команда)
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;
КонецПроцедуры
аноним:
Выбор фото из представленного списка и его сохранение в справочнике
&НаКлиенте
Процедура ФотоНаФорме Нажатие(Элемент,СтандартнаяОбработка)
ЗагрузкаФото = Новый ОписаниеОповещения(«ВыборФайла»,ЭтотОбъект);
НачатьПомещениеФайла(ЗагрузкаФото,,,Истина,УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ВыборФайла(Результат,Адрес,ИмяВыбранногоФайла,ДополнительныеПараметры) Экспорт
Если Не Результат = Неопределенно Тогда
ФотоНаФорме = Адрес;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
ФотоНаФорме = ПолучитьНавигационнуюСсылку(Объект.Ссылка,»Фотография»);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере (Отказ,ТекущийОбъект,ПараметрыЗаписи)
Если ЭтоАдресВременногоХранилища(ФотоНаФОрме) Тогда
ТекущийОбъект.Фотография = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(ФотоНаФорме));
КонецЕсли;
КонецПроцедуры
Аноним:
регистрация пользователей
&НаСервере
Функция РегистрацияНаСервере()
Если Пароль = ПовторитьПароль
Тогда
// пишем в справочник
НП = Справочники.ПользователиИБ.СоздатьЭлемент();
НП.Наименование = логин;
НП.Фамилия = фамилия;
НП.Имя = Имя;
НП.Отчество = Отчество;
НП.Email = Email;
НП.Записать();
// пишем логин и пароль
НПК = ПользователиИнформационнойБазы.СоздатьПользователя();
НПК.Имя = Логин;
НПК.ПолноеИмя = Фамилия + » » + Имя;
НПК.Пароль = Пароль;
НПК.Роли.Добавить(Метаданные.Роли.Сотрудник);
НПК.Записать();
Возврат «Все записано»;
Иначе Сообщить(«Пароли не совпадают»);
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура Регистрация(Команда)
РезультатРегистрации = РегистрацияНаСервере();
Если РезультатРегистрации = «Все записано»
Тогда
ОткрытьФорму(«ОбщаяФорма.СпасибоЗаРегистрацию»);
Иначе Сообщить(«Что-то пошло не так…»);
КонецЕсли;
КонецПроцедуры
Аноним:
работа с документом
&НаКлиенте
Процедура КоличествоПриИзменении(Элемент)
Количество = Объект.Количество;
Если Количество > 3 Тогда
Сообщить(«Максимальное количество дней — 3»);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура заказКоличествоПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
СтрокаТабличнойЧасти.Итого = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена — (
СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Скидка/100);
КонецПроцедуры
&НаКлиенте
Процедура заказЦенаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
СтрокаТабличнойЧасти.Итого = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена — (
СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Скидка/100);
КонецПроцедуры
&НаКлиенте
Процедура заказСкидкаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
СтрокаТабличнойЧасти.Итого = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена — (
СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Скидка/100);
КонецПроцедуры
&НаСервере
Процедура заказТипБилетаПриИзмененииНаСервере(ТипБилета,Цена)
Если ТипБилета = Перечисления.ТипБилета.Взрослый Тогда
Цена = 3000;
ИначеЕсли ТипБилета = Перечисления.ТипБилета.Детский Тогда
Цена = 1500;
ИначеЕсли ТипБилета = Перечисления.ТипБилета.Льготный Тогда
Цена = 2000;
КонецЕсли
КонецПроцедуры
&НаКлиенте
Процедура заказТипБилетаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.заказ.ТекущиеДанные;
Если Объект.Количество = 1 Тогда
СтрокаТабличнойЧасти.Скидка = 10;
ИначеЕсли Объект.Количество = 2 Тогда
СтрокаТабличнойЧасти.Скидка = 20;
ИначеЕсли Объект.Количество = 3 Тогда
СтрокаТабличнойЧасти.Скидка = 30;
КонецЕсли;
заказТипБилетаПриИзмененииНаСервере(СтрокаТабличнойЧасти.ТипБилета,СтрокаТабличнойЧасти.Цена);
КонецПроцедуры
Евгения:
Спасибо большое! Очень универсальненько)
Людмила:
Здравствуйте! А такая же обработка для обычного приложения есть? Спасибо
Евгений:
Добрый день! Подскажите, при импорте из Excel, штрихкоды загружаются в виде решеток «##########», как поправить не исправляя файл Excel?
Аноним:
Заменил Excel.Cells(Row,Column).Text на Excel.Cells(Row,Column).Value
БаронЗемо:
Отвратительный разбор. Какой уникум додумался писать в разборе Как загрузить данные из Excel про разбор на совершенно другую тему? Я задал конкретный вопрос и ищу на него конкретный ответ, а не же что мне скажут «сделайте как в другом разборе». Вы пишете инструкцию для работы с Excel, так вот, пожалуйста, пишите подробно от А до Я что нужно делать конкретно на данном примере, а не делая вставки а ля «чтобы включить стиральную машинку в розетку, нужно поступить так же как мы поступали в другой инструкции при подключении микроволновки». Если не умеете обучать, нечего вообще браться. Только засоряете время обучающихся новичков бесполезным шлаком.
Артем:
Ты предъявы свои нелепые кидать будешь, когда дашь хоть что-то взамен за полученную БЕСПЛАТНУЮ информацию. А если не хватает извилин переварить суть информации — проходи мимо, автор ничего тебе не обязан объяснять и тем более не обязан соответствовать твоим воспалённым фантазиям, Вася.
ккуакуак:
Функция GETПолучить(Запрос)
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Пользователи.Наименование КАК Наименование,
| Пользователи.Пароль КАК Пароль
|ИЗ
| Справочник.Пользователи КАК Пользователи»;
тзПрайс = Запрос.Выполнить().Выгрузить();
Строка64 = XMLСтрока(Новый ХранилищеЗначения(тзПрайс, Новый СжатиеДанных(9)));
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(Строка64);
Возврат Ответ;
КонецФункции
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПолучитьПользователей();
КонецПроцедуры
&НаСервере
Процедура ПолучитьПользователей()
Попытка
Запрос = Новый HTTPЗапрос(«/hs/user/get»);
#Если МобильноеприложениеСервер Тогда
Подключение = Новый HTTPСоединение(«172.16.2.1//MOB»);
#Иначе
Подключение = Новый HTTPСоединение(«localhost/MOB»);
#КонецЕсли
Ответ = Подключение.Получить(Запрос);
Строка64 = Ответ.ПолучитьТелоКакСтроку();
Хранилище = XMLЗначение(Тип(«ХранилищеЗначения»),Строка64);
тзПрайс = Хранилище.Получить();
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «ОШИБКА: » + ОписаниеОшибки();
Сообщение.Сообщить();
Возврат;
КонецПопытки;
Для Каждого СтрокаТЗ Из тзПрайс Цикл
Пользователь = Справочники.Пользователи.НайтиПоНаименованию(СтрокаТЗ.Наименование);
Если Пользователь.Пустая() Тогда
НовПоль = Справочники.Пользователи.СоздатьЭлемент();
НовПоль.Наименование = СтрокаТЗ.Наименование;
НовПоль.Пароль = СтрокаТЗ.Пароль;
Попытка НовПоль.Записать();
Поль = НовПоль.Ссылка;
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «ОШИБКА: » + ОписаниеОшибки();
Сообщение.Сообщить();
Возврат;
КонецПопытки;
КонецЕсли;
КонецЦикла;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «Успешно обработано: » + тзПрайс.Количество() + » строк»;
Сообщение.Сообщить();
Возврат;
КонецПроцедуры
Adolf:
Добрый день.
У меня ваш код не работает. Выдает ошибку Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Invalid class string. Подскажите пожалуйста, в чём проблема.
Аноним:
&НаКлиенте
Процедура ТестовыйСценарий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 пройден»);
КонецПроцедуры
Аноним:
ЗапуститьСистему(«Расположение 1С ENTERPRISE /F Расположение информационной базы /TESTCLIENT [-TPort]»);
ТестКлиент = Новый ТестируемоеПриложение();
ВремяОкончания = ТекущаяДата() + 15;
Подключен = Ложь;
Пока Не ТекущаяДата() >= ВремяОкончания Цикл
Попытка
ТестКлиент.УстановитьСоединение();
Подключен = Истина;
Прервать;
Исключение
КонецПопытки;
КонецЦикла;
Если Не Подключен Тогда
Сообщить(«Не удалось установить соединение»);
Возврат;
КонецЕсли;
ГлавноеОкноТестируемогоПриложения = ТестКлиент.НайтиОбъект(Тип(«ТестируемоеОкноКлиентскогоПриложения»));
ГлавноеОкноТестируемогоПриложения.Активизировать();
ГлавноеОкноТестируемогоПриложения.ВыполнитьКоманду(«e1cib/command/Справочник.Дроны.Создать»);
ТестКлиент.ОжидатьОтображениеОбъекта(Тип(«ТестируемаяФорма»), «Дроны*»);
ТестируемаяФорма = ТестКлиент.НайтиОбъект(Тип(«ТестируемаяФорма»),»Дроны*»);
ТестируемаяФорма.Активизировать();
ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемоеПолеФормы»), «Наименование»);
ЭлементФормы.Активизировать();
ЭлементФормы.ВвестиТекст(«Дрон 4»);
ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемоеПолеФормы»), «Статус»);
ЭлементФормы.Активизировать();
ЭлементФормы.ВвестиТекст(«В серийном производстве»);
ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемаяКнопкаФормы»), «Записать и закрыть»);
ЭлементФормы.Нажать();
Сообщить(«Тестовый сценарий завершен»);
Аноним:
Текущиеданные = элементы.табчасть.текущиеданные;
Если текущиеданные = неопределенно Тогда
Элементы.табчасть.отборстрок = неопределенно;
Иначе
ТекКонтрагент= Текданные.полеотбора;
Элементы.табчасть.отборстрок= Новый фиксированнаяструктура(«полеотбора»,реквизитвыборки);
Конецесли;
Аноним:
Читаю «Обработку мы будем делать универсальную» — ну круто, думаю, без CОМ-объектов. Но нет, оказалась не такая уж универсальная)
Баблквасер:
Есть ли возможность работы с 1С:Предприятие 8.3? Нигде не могу найти информацию, всё отдам
Петр:
Для соединения информационной базы 1С с файлом Microsoft Office и LibreOffice используют COM-объекты. Можно ли работать с МойОфис в системе 1C через COM-соединения?