<<<

/// Пример работы с xml в 1с 8.3, 8.2
 
Процедура Пример_Работа_С_XML()
 
    // запись XML
 
    XML = Новый ЗаписьXML;
    XML.ОткрытьФайл("d:\Базы 1С\Data.xml");
 
    XML.ЗаписатьОбъявлениеXML();
 
    XML.ЗаписатьНачалоЭлемента("Корень");
 
    XML.ЗаписатьНачалоЭлемента("Город");
 
    XML.ЗаписатьНачалоАтрибута("Название");
    XML.ЗаписатьТекст("Хабаровск");
    XML.ЗаписатьКонецАтрибута();
 
    XML.ЗаписатьНачалоАтрибута("Численность");
    XML.ЗаписатьТекст("600000");
    XML.ЗаписатьКонецАтрибута();
 
    XML.ЗаписатьКонецЭлемента();
    XML.ЗаписатьКонецЭлемента();
 
    XML.Закрыть();
 
    // чтение XML
 
    XML = Новый ЧтениеXML;
    XML.ОткрытьФайл("d:\Базы 1С\Data.xml");
 
    Пока XML.Прочитать() Цикл
 
        Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
            Сообщить("<" + XML.Имя + ">");
 
            Пока XML.ПрочитатьАтрибут() Цикл
                Сообщить(XML.Имя + " = " + XML.Значение); 
            КонецЦикла;
 
        КонецЕсли;
 
        Если XML.ТипУзла = ТипУзлаXML.Текст Тогда
            Сообщить(XML.Значение); 
        КонецЕсли;
 
        Если XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда 
            Сообщить("");
        КонецЕсли; 
 
    КонецЦикла; 
 
    XML.Закрыть();
 
КонецПроцедуры
 
/// Пример работы с текстовым документом в 1с 8.3, 8.2
 
Процедура Пример_ТекстовыйДокумент()
 
    // создание и запись в текстовый документ
    Текст = Новый ТекстовыйДокумент;
    Текст.ДобавитьСтроку("Первая строка документа!");
    Текст.ЗаменитьСтроку(1, "Замена первой строки!"); // нумерация с 1
    Текст.ВставитьСтроку(2, "Вторая строка!");
    Текст.Записать("Пример.txt", КодировкаТекста.ANSI, Символы.ПС);
    //Текст.Показать(); // откроет текст в редакторе
 
    // чтение текстового документа
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать("Пример.txt", КодировкаТекста.ANSI, Символы.ПС);
    Для Номер = 1 По Текст.КоличествоСтрок() Цикл
        Сообщить(Текст.ПолучитьСтроку(Номер));
    КонецЦикла;
 
    // как удалить строку из документа
    Текст.УдалитьСтроку(1);
 
    // как очистить текст
    Текст.Очистить();
 
КонецПроцедуры
 
/// Как работать с zip архивами в 1с 8.3, 8.2
 
Процедура Пример_РаботыСZipАрхивами()
 
    // создание архива и добавление файла
    Архив = Новый ЗаписьZipФайла("C:\Архив.zip");
    Архив.Добавить("c:\Документ.doc");
    Архив.Записать();
 
    // открытие и распаковка архива
    Архив = Новый ЧтениеZipФайла("C:\Архив.zip");
    Архив.ИзвлечьВсе("C:\РаспакованныйАрхив");
 
КонецПроцедуры
 
/// Как работать с хранилищем значения в 1с 8.3, 8.2
 
Процедура Пример_РаботыСХранилищемЗначения()
 
    // создадим хранилище для хранение картинки в базе
    МояКартинка = Новый Картинка("C:\Картинка.bmp");
    ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка);
 
    // теперь мы можем сохранить это хранилище в одном из полей базы
    Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
    Номенклатура.Наименование = "Стул";
    Номенклатура.Изображение = ХранилищеКартинки;
    Номенклатура.Записать();
 
    // затем, мы можем всегда извлечь его
    МояКартинка = ХранилищеКартинки.Получить();
 
КонецПроцедуры
 
/// Как работать с двоичными данными в 1с 8.3, 8.2
 
Процедура Пример_РаботыСДвоичнымиДанными()
 
    Данные = Новый ДвоичныеДанные("c:\Картинка.png");
    Сообщить(Данные.Размер());
    // можно сохранить их в хранилище значений
    Данные.Записать("c:\binary_data");
 
КонецПроцедуры
 
/// Как производить хеширование данных в 1с 8.3, 8.2
 
Процедура Пример_ХешированиеДанных()
 
    Хеш = Новый ХешированиеДанных(ХешФункция.CRC32);
 
    Хеш.ДобавитьФайл("c:\Картинка.png");
    Сообщить(Хеш.ХешСумма);
 
    Хеш.ДобавитьФайл("c:\Документ.doc");
    Сообщить(Хеш.ХешСумма);
 
    // Хеш.Добавить(ДвоичныеДанные);
 
КонецПроцедуры
 
/// Как сгенерировать случайное числе в 1с 8.3, 8.2
 
Процедура Пример_ГенераторСлучайныхЧисел()
 
    // инициализируем временем работы ОС
    ГСЧ = Новый ГенераторСлучайныхЧисел();
    Сообщить(ГСЧ.СлучайноеЧисло(0, 1));
 
    // инициализируем своим числом
    ГСЧ = Новый ГенераторСлучайныхЧисел(0);
    Сообщить(ГСЧ.СлучайноеЧисло(1, 100));    
 
КонецПроцедуры
 
/// Как показать сообщение пользователю с 
/// привязкой к элементу формы в 1с 8.3, 8.2
 
Процедура Пример_СообщениеПользователюСПривязкой()
 
    // Сообщение.КлючДанных = Ссылка на объект базы или ключ записи
    // Сообщение.ПутьКДанным = содержит путь в форме до объекта.
 
    // показываем сообщение из обработки
    // КлючДанных и ПутьКДанным - пустые
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Поле = "Комментарий";
    Сообщение.Текст = "Заполните комментарий";
    Сообщение.Сообщить();
 
    // показываем сообщение из документа
    // КлючДанных - пустой, ПутьКДанным заполнится автоматически
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Поле = "Товары[0].Количество";
    Сообщение.Текст = "Не заполнено количество товара в первой строке!";
    Сообщение.УстановитьДанные(ЭтотОбъект);
    Сообщение.Сообщить();
 
КонецПроцедуры
 
/// Как получить системную информацию в 1с 8.3, 8.2
 
Процедура Пример_ПолученияСистемнойИнформации()
 
    СисИнфо = Новый СистемнаяИнформация;
    // версия операционной системы
    Сообщить(СисИнфо.ВерсияОС);
    // версия приложения
    Сообщить(СисИнфо.ВерсияПриложения);
    // количество оперативной памяти
    Сообщить(СисИнфо.ОперативнаяПамять);
    // тип процессора
    Сообщить(СисИнфо.Процессор);
    // тип платформы
    Сообщить(СисИнфо.ТипПлатформы);
 
КонецПроцедуры
 
/// Как работать со списком пользователей в 1с 8.3, 8.2
 
Процедура Пример_РаботаСоСпискомПользователей()
 
    // как получить список пользователей
 
    Пользователи = ПользователиИнформационнойБазы.
            ПолучитьПользователей();
    Для Каждого Пользователь Из Пользователи Цикл
        Сообщить(Пользователь.Имя);
        // перечислим роли пользователя
        Для Каждого Роль Из Пользователь.Роли Цикл
            Сообщить("    >>" + Роль);
        КонецЦикла;
    КонецЦикла;
 
    // как получить текущего пользователя
    Сообщить(ПользователиИнформационнойБазы.ТекущийПользователь());    
 
    // как создать нового пользователя
    Ползователь = ПользователиИнформационнойБазы.СоздатьПользователя();
    Пользователь.Имя = "Васечкин А.В.";
    Пользователь.Пароль = "123";
    Пользователь.Роли.Добавить(Метаданные.Роли.Администратор);
    //Пользователь.Записать();
 
    // как найти пользователя по имени
    Пользователь = ПользователиИнформационнойБазы.
            НайтиПоИмени("Васечкин А.В.");
 
    // как удалить пользователя
    //Пользователь.Удалить();
 
    // как узнать являюсь ли я администратором
    Сообщить(
        ПользователиИнформационнойБазы.
            ТекущийПользователь().Роли.Содержит(
                Метаданные.Роли.Администратор));
 
КонецПроцедуры

<<<

С уважением, (школа 1С программистов).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.