27.03.2016

1с 8 Выгрузка в dbf

Чтобы написать выгрузку в dbf-формат нам потребуется объект XBase. А также придется заранее определить типы колонок нашей будущей таблицы.
Итак, ниже листинг определения полей таблицы дбф.
лИмяФайла = "C:\1.dbf";
дбф = Новый XBASE;
дбф.Кодировка = КодировкаXBase.ANSI;
дбф.поля.Добавить("Merch_ID","N",11);
дбф.поля.Добавить("Merch_Name","S",200);
дбф.поля.Добавить("Date","D");
дбф.поля.Добавить("Ol_Code","S",25);
дбф.поля.Добавить("Vat","N",5,2);дбф.поля.Добавить("Sum","N",15,2);
дбф.СоздатьФайл(лИмяФайла); 
Потому что, чтобы начать заполнять дбф-файл его вначале нужно создать. И, конечно, тут есть нюанс. Не знаю кто конкретно повинен в этом, но название файла-дбф не должно превышать 8 символов. Если символов будет больше, 1с выдаст ошибку создания файла. Вроде бы что такого, но это очень огорчает, когда создаешь таблицу в сетевой папке с длинными названиями серверов.
N,D и S - это описание типов числовой, дата и строковый, соответственно. Расписывать не буду, лучше посмотреть в синтаксис-помощнике(Ctrl+F1).
Теперь, когда файл создан, его можно открыть и начать заполнять: 
дбф.ОткрытьФайл(лИмяФайла);  
дбф.Добавить();  
дбф.Merch_ID = "01";  
дбф.Merch_Name = "Пупышкин Василий";  
дбф.Date = ТекущаяДата();  
дбф.Ol_Code = "01";  
дбф.Vat = 18.0;
дбф.Sum = 158.82;  
дбф.Записать();
дбф.ЗакрытьФайл();
Вот и все, теперь на диске C у нас будет лежать дбф-файл, с одной строкой.

15.03.2016

1C 8.2 поместить файлы в архив

Начиная с 8-ой версии 1с есть возможность использовать внутренние средства 1с для архивирования файлов. До этого приходилось прибегать к использованию внешних программ, наподобие winrar или 7zip  и процедуры ЗапуститьПриложение. В принципе, и сейчас никто не мешает этим пользоваться, но если есть вариант без внешних приложений, то лучше пользоваться им.
Все очень просто, настолько просто, что я не буду даже вставлять кнопку "Читать дальше", потому что дальше ничего нет.
Пишем функцию:
Функция ПоместитьФайлыВАрхив(мсФайлы)
лИмяАрхива = лКаталогВыгрузки+"1.rar";
лЗаписьZIP = Новый ЗаписьZipФайла(лИмяАрхива);
Для Каждого лФайл Из мсФайлы Цикл
лЗаписьZIP.Добавить(лФайл.ПолноеИмя);
КонецЦикла;
лЗаписьZIP.Записать();
Возврат лИмяАрхива;
КонецФункции
Итак, берем массив файлов, проходим его добавляя в переменную записи zip-файла и все. Несмотря на то что конструктор называется ЗаписьZipФайла он вполне в состоянии записывать "rar" архивы. Вот и все.

14.03.2016

1С Регламентированный производственный календарь

Порой, бывает крайне необходимо  получить информацию является ли тот или иной день рабочим. Мне, например, это требуется для выгрузки данных поставщикам. Так как, зачастую, в техническом задании говорится что-нибудь на вроде: "вы должны выгружать данные каждый первый рабочий день недели за предыдущую неделю и каждый первый рабочий день месяца за предыдущий месяц". Звучит, конечно странновато, но задание есть задание и не нам его оспаривать.
Итак, в УТ есть замечательный регистр сведений "РегламентированныйПроизводственныйКалендарь". Выглядит он примерно вот так:
Регламентированный производственный календарь

И этот регистр содержит

10.03.2016

1С 8.2 разукрасить таблицу

Для начала стоит определить какой цвет вы хотите получить. Как вариант, для этого в свойствах любого элемента формы, где есть выбор цвета фона, смотрим интересующий нас цвет. Например, прямо свойствах формы, в разделе "Оформление":
Выбор цвета фона формы.