Текстовый файл- Как выгрузить данные из справочника в текстовый файл?
- Как загрузить данные из текстового файла?
- Работа с текстом. Модель последовательного доступа
XML- Как из одной базы перенести документ в другую базу?
- Как можно сформировать XML-документ произвольной структуры?
- Как сформировать XML-документ в строку?
- Как можно обмениваться данными, используя XML-сериализацию через файлы других форматов?
- Как можно загрузить XML документ произвольной структуры?
DBF-файлы- Как можно построить выгрузку-загрузку посредством файлов DBF?
Работа с HTML-документамиРабота с файлами- Как организовать диалог выбора текстового файла?
- Как прочитать информацию о файле?
- Как получить список файлов в указанном каталоге?
- Как переместить файл, выложенный на ftp к себе на локальный компьютер?
- Как разделить большой файл на несколько файлов определенного размера?
- Как поместить файлы в архив?
- Как сравнить два текстовых файла?
- Как организовать контроль формирования файла внешним приложением?
ActiveX - Как использовать элементы управления ActiveX?
- Макеты ActiveDocument
- Как сформировать новый договор на основании файла Microsoft Word?
Работа с ИнтернетРабота с электронной почтой
- Как организовать работу с электронной почтой через установленного почтового клиента?
- Как организовать работу с почтой без установленного почтового клиента на компьютере пользователя?
Работа с файлами
- Загрузка файлов по FTP
- Выполнение HTTP запроса
- Как установить HTTP соединение если подключение через прокси (proxy) сервер
Работа с COM-объектами- Как из одной базы 1С:Предприятие 8.0 перенести остатки товаров в другую базу, используя COM-соединение.
- Пример обращения к программе 1С:Предприятие 8.0 из модуля MS Excel через COM-соединение
- Как организовать считывание данных из файлов *.xls?
- Как запустить макрос, записанный в книге Microsoft Excel?
- Как создать документ программы Microsoft Excel по оформлению, приведенному в другом документе?
- Как выгрузить прайс-лист в документ программы Microsoft Word?
- Как выполнить запрос к произвольной базе данных SQL?
Automation Client/Server (OLE)- Как из одной базы 1С:Предприятие 8 интерактивно заполнить документ в другой базе, используя Automation Client/Server (OLE)?
- Как из таблицы Excel загрузить список номенклатуры в 1С:Предприятие с возможностью редактирования?
Обмен данными- Как организовать работу удаленных складов?
- Как при создании начального образа управлять тем, какие виды объектов перегружаются, а какие нет?
- Как просмотреть объекты, для которых зарегистрированы изменения?
- Как организовать обмен данными между произвольными конфигурациями 1С:Предприятие 8?
- Как принудительно зарегистрировать изменения объектов?
WEB-расширение- Как в форме списка номенклатуры отменить все установленные отборы?
- Как запретить перенос содержимого ячеек в форме списка расходных накладных?
- Как открыть список расходных накладных с отбором, установленным по определенному складу?
- Как добавить кнопку для ввода документа на основании?
Реестр Windows- Как прочитать значение, хранящееся в реестре Windows?
- Как сохранить значение в реестр Windows?
Автор проделал большую работу собрав всю эту информацию воедино, за что ему спасибо!
Текстовый файл Как выгрузить данные из справочника в текстовый файл?Текст = Новый ТекстовыйДокумент;
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Стр = СтрЗаменить(Выборка.Наименование, Символ(34), "%квч%");
Код = Строка(Выборка.Код) + Символ(34);
Текст.ДобавитьСтроку(Код + Стр);
КонецЦикла;
Текст.Записать("c:\temp\text.txt");
Как загрузить данные из текстового файла? Текст = Новый ТекстовыйДокумент;
Текст.Прочитать("c:\temp\text.txt");
Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(НомерСтроки);
Позиция = Найти(Стр, Символ(34));
Код = Сред(Стр, 1, Позиция-1); прНаименование = Сред(Стр, Позиция + 1);
Наименование = СтрЗаменить(прНаименование, "%квч%", Символ(34));
Сообщить(Код + "-" + Наименование);
КонецЦикла;
Работа с текстом. Модель последовательного доступа Путь = "c:\temp\text.txt";
Текст = Новый ЗаписьТекста(Путь, КодировкаТекста.UTF8);
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Текст.ЗаписатьСтроку(Выборка.Наименование);
КонецЦикла;
Текст.Закрыть();
Путь = "c:\temp\text.txt";
Текст = Новый ЧтениеТекста(Путь, КодировкаТекста.UTF8);
Стр = Текст.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл
Стр = Текст.ПрочитатьСтроку();
Сообщить(Стр);
КонецЦикла;
XML Как из одной базы перенести документ в другую базу? // Выгрузить в файл xml.
ЗаписьXML=Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл("c:\doc.xml");
ЗаписьXML.ЗаписатьНачалоЭлемента("Root");
// Получить объект по ссылке.
ВыгружаемыйОбъект=Документ.ПолучитьОбъект();
// С помощью средств сериализации записать объект в файл.
ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
ЧтениеXML=Новый ЧтениеXML();
ЧтениеXML.ОткрытьФайл("c:\doc.xml");
// Текущим становится элемент Root.
ЧтениеXML.Прочитать();
// Текущим становится элемент с документом.
ЧтениеXML.Прочитать();
// Проверить сможет ли с данным значением "справиться"
// система сериализации в данной базе.
Если ВозможностьЧтенияXML(ЧтениеXML) Тогда
// Получить ДокументОбъект.РеализацияТоваровУслуг
ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML);
ЗагружаемыйОбъект.Записать();
КонецЕсли;
ЧтениеXML.Закрыть();
Как можно сформировать XML-документ произвольной структуры? Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлу);
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Корневой");
Запись.ЗаписатьАтрибут("Справочник", "Номенклатура");
Запись.ЗаписатьКомментарий("Краткая информация о номенклатуре");
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
Запись.ЗаписатьНачалоЭлемента("Элемент");
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код));
Запись.ЗаписатьАтрибут("Артикул", Строка(Выборка.Артикул));
Запись.ЗаписатьТекст(Выборка.Наименование);
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
Как сформировать XML-документ в строку? Запись = Новый ЗаписьXML();
Запись.УстановитьСтроку();
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Корневой");
Запись.ЗаписатьАтрибут("Справочник", "Номенклатура");
Запись.ЗаписатьКомментарий("Краткая информация о номенклатуре");
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
Запись.ЗаписатьНачалоЭлемента("Элемент");
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код));
Запись.ЗаписатьАтрибут("Артикул", Строка(Выборка.Артикул));
Запись.ЗаписатьТекст(Выборка.Наименование);
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Стр = Запись.Закрыть();
Сообщить(Стр);
Как можно обмениваться данными, используя XML-сериализацию через файлы других форматов? ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
Данные = СсылкаНаДокумент.ПолучитьОбъект();
ЗаписатьXML(ЗаписьXML, Данные);
ТекстСообщения = ЗаписьXML.Закрыть();
Текст = Новый ТекстовыйДокумент;
Текст.УстановитьТекст(ТекстСообщения);
Текст.Записать(ПутьКФайлу);
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ПутьКФайлу);
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.УстановитьСтроку(Текст.ПолучитьТекст());
Если ВозможностьЧтенияXML(ЧтениеXML) Тогда
Данные = ПрочитатьXML(ЧтениеXML);
Данные.Записать();
КонецЕсли;
Как можно загрузить XML документ произвольной структуры? Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ПутьКФайлу);
Пока Чтение.Прочитать() Цикл
// Прочитать "структурные части" элементов.
// Проверить, какая часть элемента - текущая.
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ИмяУзла = Чтение.Имя; Сообщить("--" + ИмяУзла);
// Атрибуты элементов можно читать только если текущая часть -
// начало элемента
Пока Чтение.ПрочитатьАтрибут() Цикл
// Прочитать данные узла атрибута.
ТипУзла = Чтение.ТипУзла;
Имя = Чтение.Имя;
Значение = Чтение.Значение;
// Обработать полученные значения.
КонецЦикла;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
// В примере просто выводим текст в окно сообщений.
Сообщить("Текст:" + Чтение.Значение);
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
// В примере просто выводим признак конца элемента
// в окно сообщений Сообщить("--Конец:" + Чтение.Имя);
КонецЕсли;
КонецЦикла;
DBF-файлы Как можно построить выгрузку-загрузку посредством файлов DBF?БД = Новый XBase;
БД.Поля.Добавить("CODE", "S", 5);
БД.Поля.Добавить("NAME", "S", 40);
БД.СоздатьФайл(Путь + "start.dbf", Путь + "index.cdx");
БД.Индексы.Добавить("IDXCODE", "CODE");
ФлИБД = БД.СоздатьИндексныйФайл(Путь + "index.cdx");
БД.АвтоСохранение = Истина;
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
БД.Добавить();
БД.CODE = Выборка.Код;
БД.NAME = Выборка.Наименование;
КонецЦикла;
БД.ЗакрытьФайл();
БД = Новый XBase;
БД.ОткрытьФайл(Путь + "start.dbf", Путь + "index.cdx");
БД.ТекущийИндекс = БД.Индексы.IDXCODE;
Пока БД.Следующая() Цикл
Сообщить(БД.CODE);
Сообщить(БД.NAME);
КонецЦикла;
БД.ЗакрытьФайл();
Работа с HTML-документамиЗаполнение HTML-анкетПроцедура URLПриИзменении(Элемент)
ЭлементыФормы.ПолеHTML.Перейти(URL);
КонецПроцедуры
Процедура ПолеHTMLДокументСформирован(Элемент)
// Событие возникает и при открытии формы, когда в реквизите
// URL содержится пустая строка.
Если URL <> "" Тогда
Док = ЭлементыФормы.ПолеHTML.Документ;
// При попытке обратиться к несуществующему свойству
// произойдет ошибка
Док.forms["frm"].fam.Value = "Иванов";
Док.forms["frm"].nam.Value = "Иван";
Док.forms["frm"].otch.Value = "Иванович";
КонецЕсли;
КонецПроцедуры
Работа с файламиКак организовать диалог выбора текстового файла?Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Фильтр = "Текст(*,txt)|*.txt";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
КонецЕсли;
Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытия.Каталог = "";
ДиалогОткрытия.МножественныйВыбор = Ложь;
ДиалогОткрытия.Заголовок = "Выберите каталог";
Если ДиалогОткрытия.Выбрать() Тогда
ПутьККаталогу = ДиалогОткрытия.Каталог;
КонецЕсли;
Как прочитать информацию о файле?ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Выбрать();
Файл = Новый Файл(ДиалогОткрытияФайла.ПолноеИмяФайла);
Текст = "Файл: " + Файл.Имя;
Текст = Текст + Символы.ПС + "Расширение: " + Файл.Расширение;
Текст = Текст + Символы.ПС + "Полное имя: " + Файл.ПолноеИмя;
Текст = Текст + Символы.ПС + "Путь: " + Файл.Путь;
Текст = Текст + Символы.ПС + "Размер: " + Файл.Размер() + " байт";
Текст = Текст + ?(Файл.ПолучитьНевидимость(), Символы.ПС + "Невидимый. ", "");
Текст = Текст + ?(Файл.ПолучитьТолькоЧтение(), Символы.ПС + "Только чтение.", "");
Текст = Текст + Символы.ПС + "Последнее изменение: " + Файл.ПолучитьВремяИзменения();
Сообщить(Текст);
Как получить список файлов в указанном каталоге?МассивНайденных = НайтиФайлы("C:\Обмен\Входящие", "*.xml");
Для Каждого Файл из МассивНайденных Цикл
Сообщить(Файл.Имя);
// Обработать найденные файлы.
КонецЦикла;
Как переместить файл, выложенный на ftp к себе на локальный компьютер?Если НайтиФайлы("C:\Temp\Sklad.xml") <> Неопределено Тогда
УдалитьФайлы("C:\Temp\ Sklad.xml ");
КонецЕсли;
Если НайтиФайлы("ftp://111.222.333.4/Sklad.xml") <> Неопределено Тогда
ПереместитьФайл("ftp://111.222.333.4/Sklad.xml", "C:\Temp\ Sklad.xml");
Сообщить("Файл перемещен.");
Иначе
Сообщить("Действие не выполнено. Файл в источнике не найден.");
КонецЕсли;
Как разделить большой файл на несколько файлов определенного размера?//Разделяем указанный файл на несколько частей заданного размера
РазделитьФайл("D:/1/MyFile.xml", 1024*1024, "D:/1/11/");
// Обратная операция - объединение нескольких файлов в один
ОбъединитьФайлы("D:/1/11/MyFile.xml.*", "D:/1/11/MyProg.exe");
Как поместить файлы в архив?ФайлАрхива = Новый ЗаписьZipФайла("C:\Arch.zip", , ,
МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный);
ФайлАрхива.Добавить("C:\Inetpub\wwwroot\Applic1\*.*",
РежимСохраненияПутейZIP.СохранятьОтносительныеПути,
РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
ФайлАрхива.Записать();
ФайлАрхива = Новый ЧтениеZIPФайла("C:\Arch.zip");
ФайлАрхива.ИзвлечьВсе("C:\Open", РежимВосстановленияПутейФайловZIP.Восстанавливать);
ФайлАрхива.Закрыть();
Как сравнить два текстовых файла?ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Фильтр = "Текстовый документ(*.txt)|*.txt";
// Выбрать первый файл.
ДиалогОткрытияФайла.Заголовок = "Выберите первый файл:";
ДиалогОткрытияФайла.Выбрать();
ИмяФайла1 = ДиалогОткрытияФайла.ПолноеИмяФайла;
// Выбрать второй файл.
ДиалогОткрытияФайла.Заголовок = "Выберите второй файл:";
ДиалогОткрытияФайла.Выбрать();
ИмяФайла2 = ДиалогОткрытияФайла.ПолноеИмяФайла;
// Сравнить выбранные файлы.
СравнениеФайлов = Новый СравнениеФайлов();
СравнениеФайлов.ПервыйФайл = ИмяФайла1;
СравнениеФайлов.ВторойФайл = ИмяФайла2;
СравнениеФайлов.ИгнорироватьПустоеПространство = Истина;
СравнениеФайлов.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент;
СравнениеФайлов.ПоказатьРазличия();
Как организовать контроль формирования файла внешним приложением?Процедура ПроверкаНаличияФайла() ИмяКаталога = "c:\temp";
Маска = "*.xml";
НайденныеФайлы = НайтиФайлы(ИмяКаталога, Маска);
Для Каждого Файл Из НайденныеФайлы Цикл
Сообщить(Файл.Имя);
КонецЦикла;
КонецПроцедуры
ПодключитьОбработчикОжидания("ПроверкаНаличияФайла", 10);
ActiveXКак использовать элементы управления ActiveX?Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогФыбораФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогФыбораФайла.Фильтр = "Все файлы (все)|*.*";
ДиалогФыбораФайла.Заголовок = "Выберите медиа файл";
Если ДиалогФыбораФайла.Выбрать() Тогда
ПутьКМедиаФайлу = ДиалогФыбораФайла.ПолноеИмяФайла;
// В зависимости от варианта объекта запись полного пути к файлу
// производится либо в свойство FileName, либо в свойство URL.
Попытка
ЭлементыФормы.WMP.FileName = ПутьКМедиаФайлу;
Исключение
ЭлементыФормы.WMP.URL = ПутьКМедиаФайлу;
КонецПопытки;
КонецЕсли;
Макеты ActiveDocumentКак сформировать новый договор на основании файла Microsoft Word?Договор = ПолучитьМакет("Договор");
// Получить объект из макета.
MSWord = Договор.Получить();
НаименованиеКонтрагента = "ООО Торгуем всем";
Попытка
Документ = MSWord.Application.Documents(1);
Документ.Activate();
// Получить объект, который будем использовать для поиска и замены.
Замена = Документ.Content.Find;
// Заменить заранее определенные ключевые конструкции на требуемый текст.
Замена.Execute("<НазваниеКомпании>", Ложь, Истина, Ложь, , ,
Истина, , Ложь, НаименованиеКонтрагента);
// Далее аналогично для остальных ключевых конструкций.
// Делаем видимым приложение и активизируем его.
MSWord.Application.Visible = Истина;
MSWord.Activate();
Исключение
// Если произойдет ошибка выводятся данные об ошибке и объект закрывается.
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();
КонецПопытки;
Работа с ИнтернетРабота с электронной почтойКак организовать работу с электронной почтой через установленного почтового клиента?Почта = Новый Почта;
Почта.Подключиться("login", "password");
Сообщ = Новый ПочтовоеСообщение;
Сообщ.Текст = "Доброе время суток!!!!";
Сообщ.Тема = "Срочно в номер!!!";
Данные = Новый ДвоичныеДанные("c:\attach.txt");
Сообщ.Вложения.Добавить(Данные,"attach.txt");
Сообщ.Получатели.Добавить("hline@1c.ru");
Почта.Послать(Сообщ, Ложь);
Почта.Отключиться();
Почта = Новый Почта;
Почта.Подключиться("login", "password");
Выборка = Почта.Выбрать(Истина, Ложь);
Для Каждого Сообщение Из Выборка Цикл
Сообщить("Тема: " + Строка(Сообщение.Тема));
Сообщить("Текст: " + Строка(Сообщение.Текст));
Для Каждого Вложение Из Сообщение.Вложения Цикл
Сообщить(Строка(Вложение.Наименование));
КонецЦикла;
КонецЦикла;
Как организовать работу с почтой без установленного почтового клиента на компьютере пользователя?// Сформировать почтовый профиль.
// При отправке нет необходимости указывать настройки, связанные с POP сервером.
ИПП = Новый ИнтернетПочтовыйПрофиль;
ИПП.АдресСервераSMTP = Константы.АдресСервераSMTP.Получить();
ИПП.ВремяОжидания = Константы.ВремяОжидания.Получить();
ИПП.Пароль = Константы.Пароль.Получить();
ИПП.ПарольSMTP = Константы.ПарольSMTP.Получить();
ИПП.Пользователь = Константы.Пользователь.Получить();
ИПП.ПользовательSMTP = Константы.ПользовательSMTP.Получить();
ИПП.ПортSMTP = Константы.ПортSMTP.Получить();
// Создать сообщение.
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Получатели.Добавить("hline@1c.ru");
Сообщение.Отправитель.Адрес = "booktest@yandexyandex.ru";
Сообщение.Тема = "Срочно в номер!";
Сообщение.Тексты.Добавить("Доброе время суток!");
Вложение = Новый ДвоичныеДанные(ПутьКФайлуВложения);
Сообщение.Вложения.Добавить(Вложение,"attach.txt");
// Подключиться и отправить.
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Почта.Послать(Сообщение);
Почта.Отключиться();
// Формирование почтового профиля.
// При получении нет необходимости указывать настройки, связанные с SMTP сервером.
СостояниеПриема = "Подключение к серверу";
ИПП = Новый ИнтернетПочтовыйПрофиль;
ИПП.АдресСервераPOP3 = Константы.АдресСервераPOP3.Получить();
ИПП.ВремяОжидания = Константы.ВремяОжидания.Получить();
ИПП.Пароль = Константы.Пароль.Получить();
ИПП.Пользователь = Константы.Пользователь.Получить();
ИПП.ПортPOP3 = Константы.ПортPOP3.Получить();
Соединение = Новый ИнтернетПочта;
Соединение.Подключиться(ИПП);
СостояниеПриема = "Получение выборки писем";
Выборка = Соединение.Выбрать(ЗабиратьССервера);
СостояниеПриема = "Создание документов - писем";
КоличествоВВыборке = Выборка.Количество();
Индекс = 1;
Для Каждого Письмо Из Выборка Цикл
ТекПозиция = Окр(Индекс*100/КоличествоВВыборке);
Если ТекПозиция <> Позиция Тогда
Позиция = ТекПозиция;
КонецЕсли;
Док = Документы.Письмо.СоздатьДокумент();
Док.Тема = Письмо.Тема;
СтрПолучатели = "";
Для Каждого Адрес Из Письмо.Получатели Цикл
СтрПолучатели = СтрПолучатели + Адрес.Адрес + ",";
КонецЦикла;
Док.Получатели = СтрПолучатели;
Если ТипЗнч(Письмо.Отправитель) = Тип("Строка") Тогда
Отправитель = Письмо.Отправитель;
Иначе
Отправитель = Письмо.Отправитель.Адрес;
КонецЕсли;
Док.Отправитель = Отправитель;
Содержание = "";
Для Каждого ТекстСообщения Из Письмо.Тексты Цикл
Содержание = Содержание + ТекстСообщения.Текст + Символы.ПС;
КонецЦикла;
Док.Содержание = Содержание;
Индекс = Индекс + 1;
Док.Записать();
КонецЦикла;
Соединение.Отключиться();
Работа с файламиЗагрузка файлов по FTPПроцедура ЗагрузитьОтмеченные(Кнопка)
Сервер = Новый FTPСоединение(FTPServer);
Для Каждого Файл Из ПолеСписка Цикл
Если Файл.Пометка Тогда
Сервер.Получить(Файл.Значение.ПолноеИмя, "с:\temp" +
Файл.Значение.ПолноеИмя);
Файл.Пометка = Ложь;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура Просмотреть(Кнопка)
Сервер = Новый FTPСоединение(FTPServer);
МассивФайлов = Сервер.НайтиФайлы("/","*.*");
Для Каждого Файл Из МассивФайлов Цикл
Если Файл.ЭтоФайл() Тогда
ПолеСписка.Добавить(Файл, Файл.Имя)
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Выполнение HTTP запросаСерверИсточник = HTTPserver;
Адрес = "/price.asp";
ИмяВходящегоФайла = "c:\temp\input.html";
НТТР = Новый HTTPСоединение(СерверИсточник);
НТТР.Получить(Адрес, ИмяВходящегоФайла);
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
Как установить HTTP соединение если подключение через прокси (proxy) сервер// Укажем настройки прокси-сервера
ПроксиСервер = Новый ИнтернетПрокси;
ПроксиСервер.Пользователь = "Кинев";
ПроксиСервер.Пароль = "12345";
ПроксиСервер.Установить("http", "10.1.1.223", "3100");
СерверИсточник = "www.cennic-etiketka.com";
Адрес = "/price.asp";
ИмяВходящегоФайла = "c:\temp\input.html";
// Укажем в HTTP соединении что у нас есть проксик
НТТР = Новый HTTPСоединение(СерверИсточник,,,, ПроксиСервер);
НТТР.Получить(Адрес, ИмяВходящегоФайла);
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
Работа с COM-объектамиКак из одной базы 1С:Предприятие 8.0 перенести остатки товаров в другую базу, используя COM-соединение.Запрос = Новый Запрос;
Запрос.Текст= "ВЫБРАТЬ
| ОстаткиТоваровОрганизацийОстатки.Организация КАК Организация,
| ОстаткиТоваровОрганизацийОстатки.Номенклатура,
| ОстаткиТоваровОрганизацийОстатки.ГТДОрганизации,
| ОстаткиТоваровОрганизацийОстатки.СтранаПроисхождения,
| ОстаткиТоваровОрганизацийОстатки.Комиссионер,
| ОстаткиТоваровОрганизацийОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваровОрганизаций.Остатки(&ДатаПереноса, )
| КАК ОстаткиТоваровОрганизацийОстатки
|ИТОГИ ПО
| Организация";
Запрос.УстановитьПараметр("ДатаПереноса", ДатаПереноса);
V8 = Новый COMОбъект("V8.ComConnector");
Попытка
Открытие = V8.Connect("File=""" + Путь + """;Usr=""Usr1"";");
Исключение
Предупреждение("База данных не открыта!!!");
Возврат;
КонецПопытки;
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
МенеджерДокумента = Открытие.Документы.ОприходованиеТоваров;
МенеджерНоменклатуры = Открытие.Справочники.Номенклатура;
МенеджерОрганизаций = Открытие.Справочники.Организации;
// Менеджеры остальных справочников:
Пока Выборка.Следующий() Цикл
Документ = МенеджерДокумента.СоздатьДокумент();
Код = Выборка.Организация.Код;
Организация = МенеджерОрганизаций.НайтиПоКоду(Код);
Если Организация.Пустая() Тогда
Организация = МенеджерОрганизаций.СоздатьЭлемент();
Организация.Код = Код;
// Остальные реквизиты:
Организация.Записать();
КонецЕсли;
// Обработка остальных реквизитов, справочников:
ВыборкаПодчиненная = Выборка.Выбрать();
Пока ВыборкаПодчиненная.Следующий() Цикл
// Поиск/перенос данных справочников
// заполнение табличной части документа
КонецЦикла;
Документ.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
Пример обращения к программе 1С:Предприятие 8.0 из модуля MS Excel через COM-соединениеSub load()
Dim cntr As Object
Dim trade As Object
Dim Элемент As Object
Dim СправочникКонтрагентов As Object
Dim ГруппаКонтрагентов As Object
Set cntr = CreateObject("V8.COMConnector")
Set trade = cntr.Connect("File=""C:\DemoTrd4"";Usr=""Федоров (администратор)"";")
Set СправочникКонтрагентов = trade.Справочники.Контрагенты
Set ГруппаКонтрагентов = СправочникКонтрагентов.СоздатьГруппу()
ГруппаКонтрагентов.Наименование = "***** Экспорт из Excel ******"
ГруппаКонтрагентов.Записать
N = 11 'Количество строк в списке поставщиков
For Count = 3 To N
Set Элемент = СправочникКонтрагентов.СоздатьЭлемент()
Элемент.Код = Application.Cells(Count, 1).Value
Элемент.Наименование = Application.Cells(Count, 2).Value
Элемент.ИНН = Application.Cells(Count, 3).Value
Элемент.НаименованиеПолное = Application.Cells(Count, 4).Value
Элемент.Родитель = ГруппаКонтрагентов.Ссылка
Элемент.Записать
Next Count
End Sub
Как организовать считывание данных из файлов *.xls?Док = ПолучитьCOMОбъект(Путь + "ценыконкурентов.xls");
КоличествоСтраниц = 2;
Для ТекНомер = 1 По КоличествоСтраниц Цикл
Контрагент = Док.Sheets(ТекНомер).Cells(1,1).Value;
Товар = Док.Sheets(ТекНомер).Cells(2,2).Value;
Цена = Док.Sheets(ТекНомер).Cells(2,3).Value;
счСтроки = 3;
Сообщить(Строка(Товар) + "-" + Строка(Цена));
// можно использовать другой признак окончания данных на листе
Пока СокрЛП(Товар) <> "" Цикл
Товар = Док.Sheets(ТекНомер).Cells(СчСтроки,2).Value;
Цена = Док.Sheets(ТекНомер).Cells(СчСтроки,3).Value;
Сообщить(Строка(Товар) + "-" + Строка(Цена));
счСтроки = счСтроки + 1;
КонецЦикла;
КонецЦикла;
Док.Application.Quit();
Как запустить макрос, записанный в книге Microsoft Excel?Попытка
// Создать объект.
Excel = Новый COMОбъект("Excel.Application");
Исключение
Сообщить("Не удалось инициализировать Excel");
Возврат;
КонецПопытки;
Попытка
// В реальном примере путь может быть совершенно другим.
Excel.Workbooks.Open("c:\doc.xls");
// Запустить макрос с именем "Оформление".
Excel.Run("Оформление");
Excel.Visible = Истина;
Исключение
// Если произойдет ошибка выводятся данные об ошибке и объект закрывается.
Сообщить(ОписаниеОшибки());
Excel.Quit();
КонецПопытки;
Как создать документ программы Microsoft Excel по оформлению, приведенному в другом документе?Попытка
// Создать объект.
Excel = Новый COMОбъект("Excel.Application");
Исключение
Сообщить("Не удалось инициализировать Excel");
Возврат;
КонецПопытки;
Попытка
// Если при отработке следующего фрагмента кода произойдет ошибка
// объект "Excel.Application" будет закрыт.
// Открыть книгу, содержащую шаблон оформления.
Excel.Workbooks.Open("c:\doc.xls");
НомерКниги = Excel.Workbooks.Count;
Книга = Excel.Workbooks.Item(НомерКниги);
Лист = Excel.ActiveSheet;
// Создать новую книгу (в нее будем записывать данные).
Excel.Application.Workbooks.Add(1);
НомерКниги = Excel.Workbooks.Count;
КнигаНовая = Excel.Workbooks.Item(НомерКниги);
ЛистНовый = Excel.ActiveSheet;
// Установить ширину колонки в новой книге.
ЛистНовый.Columns("B").ColumnWidth = 40;
// Копировать область из книги-шаблона в новую книгу.
Лист.Range("Шапка").Copy(ЛистНовый.Range("A1:E3"));
ЛистНовый.Cells(1, 1).Value = "Наименование контрагента";
// Считаем, что в нашем случае необходимо сформировать только
// две строки табличной части
Для НомерСтроки = 1 По 2 Цикл
Лист.Range("Строка").Copy(ЛистНовый.Range(ЛистНовый.Cells(3 + НомерСтроки,1),
ЛистНовый.Cells(3 + НомерСтроки, 5)));
// Записать значение в ячейку листа новой таблицы
// в реальном примере данные будут браться из информационной базы
ЛистНовый.Cells(3 + НомерСтроки, 1).Value = НомерСтроки;
ЛистНовый.Cells(3 + НомерСтроки, 2).Value = "Наименование номенклатурной позиции "
+ Строка(НомерСтроки);
ЛистНовый.Cells(3 + НомерСтроки, 3).Value = НомерСтроки;
ЛистНовый.Cells(3 + НомерСтроки, 4).Value = НомерСтроки;
ЛистНовый.Cells(3 + НомерСтроки, 5).Value = НомерСтроки;
КонецЦикла;
Excel.Visible = Истина;
Исключение
Сообщить(ОписаниеОшибки());
Excel.Quit();
КонецПопытки;
Как выгрузить прайс-лист в документ программы Microsoft Word?Попытка
MSWord = Новый COMОбъект("Word.Application");
Исключение
Сообщить("Не удалось инициализировать Microsoft Word");
Возврат;
КонецПопытки;
Запрос = Новый Запрос;
// Получить данные для формируемого прайс-листа.
Запрос.Текст = "ВЫБРАТЬ
| ЦеныКомпанииСрезПоследних.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
| ЦеныКомпанииСрезПоследних.Цена,
| ЦеныКомпанииСрезПоследних.Номенклатура.Наименование КАК Номенклатура,
| 1 КАК Количество
|ИЗ
| РегистрСведений.ЦеныКомпании.СрезПоследних(&Дата, ТипЦен = &ТипЦен)
| КАК ЦеныКомпанииСрезПоследних
|УПОРЯДОЧИТЬ ПО
| Номенклатура
|ИТОГИ Количество(Количество) ПО
| ОБЩИЕ";
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
Результат = Запрос.Выполнить();
Попытка
// Создать новый документ
MSWord.Documents.Add();
Документ = MSWord.ActiveDocument();
// Добавить новый параграф в созданный документ.
Документ.Paragraphs.Add();
НомерПараграфа = Документ.Paragraphs.Count();
Параграф = Документ.Paragraphs.Item(НомерПараграфа);
// В созданный параграф вставить новый "диапазон"
// и разместить в нем текст "Прайс-Лист".
Параграф.Range.InsertAfter("Прайс-Лист");
// Установить стиль параграфа "Заголовок 1" (он должен быть определен).
Параграф.Range.Style="Заголовок 1";
Документ.Paragraphs.Add();
НомерПараграфа = Документ.Paragraphs.Count();
Параграф = Документ.Paragraphs.Item(НомерПараграфа);
Параграф.Range.InsertAfter("Сформирован на дату: " + Строка(ТекущаяДата()));
Параграф.Range.Style = "Обычный";
ВыборкаКоличества = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаКоличества.Следующий();
КоличествоСтрок = ВыборкаКоличества.Количество;
Документ.Paragraphs.Add();
НомерПараграфа = Документ.Paragraphs.Count();
Параграф=Документ.Paragraphs.Item(НомерПараграфа);
// Вставить таблицу с количеством строк равным количеству записей
// в выборке результата запроса и с тремя колонками
Документ.Tables.Add(Параграф.Range, КоличествоСтрок, 3);
// Получить таблицу как объект в отдельную переменную
// учитывая тот факт, что таблица у нас единственная
Таблица = Документ.Tables.Item(1);
// Записать данные в ячейку таблицы строка №1, колонка №1
Таблица.Cell(1,1).Range().InsertAfter("Номенклатура");
// Установить цвет фона в ячейке
Таблица.Cell(1,1).Shading.BackgroundPatternColor = 16776960;
Таблица.Cell(1,2).Range().InsertAfter("Цена");
Таблица.Cell(1,2).Shading.BackgroundPatternColor = 16776960;
Таблица.Cell(1,3).Range().InsertAfter("Ед.Изм.");
Таблица.Cell(1,3).Shading.BackgroundPatternColor = 16776960;
НомерСтроки = 1;
Выборка = ВыборкаКоличества.Выбрать();
Пока Выборка.Следующий() Цикл НомерСтроки = НомерСтроки + 1;
Таблица.Cell(НомерСтроки,1).Range().InsertAfter(Выборка.Номенклатура);
Таблица.Cell(НомерСтроки,2).Range().InsertAfter(Строка(Выборка.Цена));
Таблица.Cell(НомерСтроки,3).Range().InsertAfter(Выборка.ЕдиницаИзмерения);
КонецЦикла;
MSWord.Visible = Истина;
MSWord.Activate();
Исключение
// Если произойдет ошибка выводятся данные об ошибке и объект закрывается.
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();
КонецПопытки;
Как выполнить запрос к произвольной базе данных SQL?стрПодключения = "Driver={SQL Server};"
стрПодключения = стрПодключения + ИмяСервера + ";";
стрПодключения = стрПодключения +"Uid=" + ИмяПользователя + ";";
стрПодключения = стрПодключения + "Pwd=" + Пароль + ";";
стрПодключения = стрПодключения + "DataBase =" + ИмяБазы + ";";
стрПодключения = стрПодключения + "Pwd=" + Пароль + ";";
Connection = Новый COMОбъект("ADODB.Connection");
Connection.OpenServer = стрПодключения;
RS = Новый COMОбъект("ADODB.Recordset");
// Запрос к базе на языке SQL запросов.
RS.Open("Select * from TradeUnit", Connection);
Пока RS.EOF() = 0 Цикл
// Можно обращаться и обрабатывать значения полей выборки.
ИД = RS.Fields("ID").Value;
Код = RS.Fields("Code").Value;
// Обработка других полей
RS.MoveNext();
КонецЦикла;
RS.Close();
Connection.Close();
Automation Client/Server (OLE)Как из одной базы 1С:Предприятие 8.0 интерактивно заполнить документ в другой базе, используя Automation Client/Server (OLE)?V8 = Новый COMОбъект("V8.Application");
Попытка
Открытие = V8.Connect("File=""" + Путь + """;Usr=""Usr1"";");
Исключение
Предупреждение("База данных не открыта!!!");
Возврат;
КонецПопытки;
МенеджерДокумента = V8.Документы.РеализацияТоваров;
Документ = МенеджерДокумента.СоздатьДокумент();
ФормаДокумента = Документ.ПолучитьФорму();
ФормаДокумента.ОткрытьМодально();
Как из таблицы Excel загрузить список номенклатуры в 1С:Предприятие с возможностью редактирования?Sub load() Dim trade As Object Dim СправочникНоменклатуры As Object Dim ГруппаНоменклатуры As Object Dim Элемент As Object Dim Форма As Object Set trade = CreateObject("V8.Application") trade.Connect("File=""C:\DemoTrd4"";Usr=""Федоров (администратор)"";") Set СправочникНоменклатуры = trade.Справочники.Номенклатура Set ГруппаНоменклатуры = СправочникНоменклатуры.СоздатьГруппу() ГруппаНоменклатуры.Наименование = "***** Экспорт из Excel ******" ГруппаНоменклатуры.Записать N = 4 'Количество загружаемых элементов справочника For Count = 2 To 5 Set Элемент = СправочникНоменклатуры.СоздатьЭлемент() Элемент.Код = Application.Cells(Count, 1).Value Элемент.Артикул = Application.Cells(Count, 2).Value Элемент.Наименование = Application.Cells(Count, 3).Value Элемент.НаименованиеПолное = Application.Cells(Count, 4).Value Элемент.Родитель = ГруппаНоменклатуры.Ссылка Set Форма = Элемент.ПолучитьФорму() Форма.ОткрытьМодально Next Count End Sub
Обмен даннымиКак организовать работу удаленных складов?Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента)
Если ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.РеализацияТоваров") Тогда
Если ЭлементДанных.Склад <> Склад Тогда
ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
Если ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.РеализацияТоваров") Тогда
ПолучениеЭлемента = ПолучениеЭлементаДанных.Принять;
КонецЕсли;
КонецПроцедуры
Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
Если ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.РеализацияТоваров") Тогда
Если ПланыОбмена.ИзменениеЗарегистрировано(Ссылка, ЭлементДанных) Тогда
ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Как при создании начального образа управлять тем, какие виды объектов перегружаются, а какие нет?Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента)
Если НеВыгружатьОбъекты Тогда
// Проверить "ненужные типы", условие может содержать проверку
// на несколько типов.
Если ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.РеализацияТоваров") Тогда
ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Как просмотреть объекты, для которых зарегистрированы изменения?ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
Узел = ПланыОбмена.НаСклады.НайтиПоКоду("С1");
ЗапСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗапСообщения.НачатьЗапись(ЗаписьXML, Узел);
Выборка = ПланыОбмена.ВыбратьИзменения(Узел, ЗапСообщения.НомерСообщения);
Пока Выборка.Следующий() Цикл
Данные = Выборка.Получить();
Сообщить(Данные);
КонецЦикла;
ЗапСообщения.ПрерватьЗапись();
Стр = ЗаписьXML.Закрыть();
Как организовать обмен данными между произвольными конфигурациями 1С:Предприятие 8.0?Процедура Выгрузка(Элемент)
Путь = "c:\"; //реальный путь к каталогу, в котором создаются файлы
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(Путь + "выгрузка.xml");
Узел = ПланыОбмена.Поставка.НайтиПоКоду("Маг1");
ЗапСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗапСообщения.НачатьЗапись(ЗаписьXML, Узел);
Выборка = ПланыОбмена.ВыбратьИзменения(Узел, ЗапСообщения.НомерСообщения);
Пока Выборка.Следующий() Цикл
Данные = Выборка.Получить();
Если ТипЗнч(Данные) = Тип("ДокументОбъект.РеализацияТоваров") Тогда
ВыгрузкаРеализации(ЗаписьXML, Данные);
Иначе // все остальные объекты
ЗаписатьXML(ЗаписьXML, Данные);
КонецЕсли;
КонецЦикла;
ЗапСообщения.ЗакончитьЗапись();
ЗаписьXML.Закрыть();
КонецПроцедуры
Процедура ВыгрузкаРеализации(ЗаписьXML, Документ)
ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject.ПередачаТовара");
ЗаписатьXML(ЗаписьXML, Документ.Ссылка.УникальныйИдентификатор(),
"Ref", НазначениеТипаXML.Явное);
ЗаписатьXML(ЗаписьXML, Документ.ПометкаУдаления,
"DeletionMark",НазначениеТипаXML.Явное);
ЗаписатьXML(ЗаписьXML, Документ.ВалютаДокумента,
"ВалютаДокумента", НазначениеТипаXML.Явное);
// Остальные свойства документа.
// Табличная часть.
ЗаписьXML.ЗаписатьНачалоЭлемента("Товары");
Для Каждого ТекСтрока Из Документ.Товары Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("Row");
ЗаписатьXML(ЗаписьXML, ТекСтрока.Номенклатура,
"Номенклатура", НазначениеТипаXML.Явное);
ЗаписатьXML(ЗаписьXML, ТекСтрока.Количество,
"Количество", НазначениеТипаXML.Явное);
// Остальные реквизиты табличной части.
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецПроцедуры
Процедура Загрузка(Элемент)
Путь = "c:\"; //реальный путь к каталогу, в котором создаются файлы
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.ОткрытьФайл(Путь + "выгрузка.xml");
ЧтСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель,
ЧтСообщения.НомерСообщения);
Пока ВозможностьЧтенияДанных(ЧтениеXML) Цикл
Данные = ПрочитатьДанные(ЧтениеXML);
Если РазрешениеКоллизий(Данные) Тогда
Данные.ОбменДанными.Отправитель = ЧтСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЕсли;
КонецЦикла;
ЧтСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
КонецПроцедуры
Функция ВозможностьЧтенияДанных(ЧтениеXML)
ТипXML = ПолучитьXMLТип(ЧтениеXML);
Если ТипXML = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Если ТипXML.ИмяТипа = "DocumentObject.ПередачаТовара" И
ТипXML.URIПространстваИмен = "" Тогда
Возврат Истина;
КонецЕсли;
Возврат ВозможностьЧтенияXML(ЧтениеXML);
КонецФункции
Функция ПрочитатьДанные(ЧтениеXML)
ТипXML = ПолучитьXMLТип(ЧтениеXML);
Если ТипXML.ИмяТипа = "DocumentObject.ПередачаТовара" И
ТипXML.URIПространстваИмен = "" Тогда
Возврат ЧтениеРеализации(ЧтениеXML);
КонецЕсли;
Возврат ПрочитатьXML(ЧтениеXML);
КонецФункции
Функция ЧтениеРеализации(ЧтениеXML)
ЧтениеXML.Прочитать();
// Работа со ссылкой документа.
ПолученнаяСсылка = ПрочитатьXML(ЧтениеXML);
Док = Документы.ПоступлениеТоваров.ПолучитьСсылку(
Новый УникальныйИдентификатор(ПолученнаяСсылка));
Документ = Док.ПолучитьОбъект();
Если Документ = Неопределено Тогда
Документ = Документы.ПоступлениеТоваров.СоздатьДокумент();
Документ.УстановитьСсылкуНового(Док);
Документ.Дата = ТекущаяДата;
Документ.УстановитьНовыйНомер();
КонецЕсли;
Документ.ПометкаУдаления = ПрочитатьXML(ЧтениеXML);
Документ.ВалютаДокумента = ПрочитатьXML(ЧтениеXML);
// Табличная часть "Товары.
// Построчное чтение.
ЧтениеXML.Прочитать();
Документ.Товары.Очистить();
Пока ЧтениеXML.Имя = "Row" Цикл
// Позиционируемся на узле с номенклатурой.
ЧтениеXML.Прочитать();
НоваяСтрока = Документ.Товары.Добавить();
НоваяСтрока.Номенклатура = ПрочитатьXML(ЧтениеXML);
НоваяСтрока.Количество = ПрочитатьXML(ЧтениеXML);
// Читаем конец узла Row.
ЧтениеXML.Прочитать();
КонецЦикла;
// Читаем конец табличной части.
ЧтениеXML.Прочитать();
// Читаем конец документа.
ЧтениеXML.Прочитать();
Возврат(Документ);
КонецФункции
Функция РазрешениеКоллизий(Данные)
Если ТипЗнч(Данные) = Тип("ДокументОбъект.ПоступлениеТоваров") Тогда
Если Не Данные.ЭтоНовый() Тогда
СсылкаНаУзел = ПланыОбмена.Поставка.НайтиПоКоду("Опт");
Если ПланыОбмена.ИзменениеЗарегистрировано(СсылкаНаУзел, Данные) Тогда
Возврат(Ложь);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат(Истина);
КонецФункции
Как принудительно зарегистрировать изменения объектов?СсылкаНаУзел = ПланыОбмена.НаСклады.НайтиПоКоду("С1");
ПланыОбмена.ЗарегистрироватьИзменения(СсылкаНаУзел, Неопределено);
СсылкаНаУзел = ПланыОбмена.НаСклады.НайтиПоКоду("С1");
ПланыОбмена.ЗарегистрироватьИзменения(СсылкаНаУзел,
Метаданные.Справочники.Номенклатура);
СсылкаНаУзел = ПланыОбмена.НаСклады.НайтиПоКоду("С1");
ДокСсылка = Документы.РеализацияТоваров.НайтиПоНомеру(НомерДок, ДатаПериода);
Если Не ДокСсылка.Пустая() Тогда
ПланыОбмена.ЗарегистрироватьИзменения(СсылкаНаУзел, ДокСсылка);
КонецЕсли;
WEB-расширениеКак в форме списка номенклатуры отменить все установленные отборы?private void commandPanel_ItemCommand(object source, System.Web.UI.WebControls.CommandEventArgs e) { if (e.CommandName = = "ShowAll") { foreach (V8Filter filter in listDS.Filter) { filter.Checked = false; } grid.Refresh(); } }
Как запретить перенос содержимого ячеек в форме списка расходных накладных?private void Grid_ItemDataBound(object sender, _1C.V8.WebControls.V8GridItemEventArgs e) { foreach (TableCell cell in e.Item.Cells) cell.Wrap = false; }
Как открыть список расходных накладных с отбором, установленным по определенному складу?Функция ПолучитьЗначениеПоУмолчанию(Пользователь, Свойство) Экспорт
Отбор = Новый Структура;
Отбор.Вставить("Пользователь", Пользователь);
Отбор.Вставить("Настройка",
ПланыВидовХарактеристик.НастройкиПользователей.НайтиПоНаименованию(Свойство));
Результат = РегистрыСведений.НастройкиПользователей.Получить(Отбор);
Возврат Результат.Значение;
КонецФункции
private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { Title.Text = ListDataSource.TableInfo.Presentation; // Добавляемый код. ListDataSource.Connection.Open(); try { ObjectRef currUser = (ObjectRef)V8.Get (ListDataSource.Connection,ListDataSource.Connection.Connection, "глТекущийПользователь"); ObjectRef mainWH = (ObjectRef)V8.Call (ListDataSource.Connection,ListDataSource.Connection.Connection, "ПолучитьЗначениеПоУмолчанию", currUser, "ОсновнойСклад"); if (!mainWH.IsEmpty()) { V8Filter filter = ListDataSource.Filter["Склад"]; filter.Checked = true; filter.Condition = V8FilterCondition.Equal; filter.ValueType1 = ListDataSource.Metadata.TypesInfo[V8.TypeNameFromValue(mainWH)]; filter.Value1 = mainWH; filter.Presentation1 = mainWH.Presentation(ListDataSource.Connection); } } finally { ListDataSource.Connection.Close(); } } } using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using _1C.V8.WebControls; using _1C.V8.Data;
Как добавить кнопку для ввода документа на основании?V8Grid_onInputOnBasis( '', 'grid', document.getElementById('grid_SelectedItem').value, 'Документ.ПриходнаяНакладная')
Реестр WindowsКак прочитать значение, хранящееся в реестре Windows?Перем Значение; // В эту переменную запишем значение из реестра
RegProv=ПолучитьCOMОбъект(
"winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv"
);
// Читаем значение ключа StartDate из ветки
// HKEY_CURRENT_USER\Software\1C\1Cv8\Report в переменную Значение
RegProv.GetStringValue("2147483649","Software\1C\1Cv8\Report","StartDate",Значение);
Как сохранить значение в реестр Windows?// Создадим ключ, установив значение в текущую дату
RegProv.CreateKey("2147483649","Software\1C\1Cv8\Report"); // создание раздела
// установка значения для ключа
RegProv.SetStringValue("2147483649","Software\1C\1Cv8\Report","StartDate",
Строка(Формат(ТекущаяДата(),"ДФ=ггггММддЧЧммсс")));
[необходимо зарегистрироваться для просмотра ссылки]