вторник, 20 декабря 2011 г.

Установить штрихкод в 1С

Leave a Comment
В программах 1С Предприятие применяется несколько разных вариантов штрихкодов 

1. Штрихкод в регламентированных отчётах 
Расположен в левом верхнем углу налоговой декларации. Для печати используется установленный шрифт (true type font) EANGNIVC.TTF. 
Выглядит - чёрные вертикальные полоски-чёрточки в левом верхнем углу 

Когда не установлен - печатаются очень крупные цифры вида !510 

Для установки: 
1. Скачайте файл EANGNIVC.TTF в интернете 
2. Скопируйте его в каталог со шрифтами (Пуск → Настройка → Панель управления → Шрифты). 

Иногда штрихкод установлен, и всё равно не печатается. Найдите шрифт EANGNIVC в каталоге со шрифтами и покликайте мышкой по нему. Вы его активируете, и теперь переходите в 1С - всё получится. 

2. Штрихкод в конфигурации Торговля и склад 

В конфигурации Торговля и склад на этикетках с товаром применяется компонента ActiveBarcode. Установочный файл Barcod.ocx находится в каталоге с базой данных 1С. 

1. Для установки скопируйте файл Barcod.ocx в каталог C:Windows\System32\ 
2. Нажмите кнопку Пуск и выберите пункт Выполнить 
3. В поле Открыть введите команду regsvr32.exe C:Windows\System32\barcode.ocx и нажмите кнопку ОК 

3. Двухмерный штрихкод 

Используется в 1С Бухгалтерии при печати налоговых деклараций в 2007 году. 

1. На титульном листе на второй закладке установите галочку Печатать двухмерный штрихкод. 
2. Нажмите кнопку Печать - выберите строку Печатать все листы или Показать все листы. 

Программа сформирует файл для ИФНС, потом преобразует его в двухмерный штрихкод и распределит его на нескольких листах декларации. 

Для установки: 
1. Скачайте файл SETUP_BARCODELIB.EXE 
2. Запустите его с правами администратора. 

4. Модуль печати машиночитаемых бланков 

Используется в 1С Бухгалтерии при печати налоговых деклараций с 2008 года. 

1. На титульном листе нажмите кнопку Печать 
2. Выберите первую или вторую строку Печатать сразу форму с двухмерным штрихкодом PDF417 или Показать бланк формы с двухмерным штрихкодом PDF417. 

Программа сформирует файл для ИФНС, потом преобразует его в двухмерный штрихкод и распределит его на нескольких листах декларации. 

Read More...

понедельник, 19 декабря 2011 г.

Загрузка из xml в Штрих-М: Торговое предприятие, редакция 5.1

Leave a Comment


Рабочий пример загрузки следующей структуры xml в Штрих-М: Торговое предприятие, редакция 5.1

XML
---------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<КорневойУзел>
  <Накладная номерИд="1" дата="2011.12.19 11.33.53">
<Отправитель>1</Отправитель>
<Получатель>3</Получатель>
        <Товар>
 <ШК>2100100002077</ШК>
 <Количество>1</Количество>
        </Товар>
        <Товар>
<ШК>2100100072094</ШК>
<Количество>1</Количество>
        </Товар>
  </Накладная>
  <Накладная номерИд="2" дата="2011.12.05 11.33.53">
<Отправитель>1</Отправитель>
<Получатель>3</Получатель>
        <Товар>
<ШК>2100100002077</ШК>
<Количество>1</Количество>
        </Товар>
        <Товар>
<ШК>2100100072094</ШК>
<Количество>1</Количество>
        </Товар>
  </Накладная>
</КорневойУзел>

1c8.1
---------------------------------
Функция ПреобразоватьДату (Дата)
Стр = СтрЗаменить(Дата, ".", "");
Возврат Дата(СтрЗаменить(Стр, " ", ""));
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
Счетчик = 0;
ПредедущаяЗапись = Неопределено;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("c:/Обмен/Для сайта/export_orders.xml");
// Документ
ТЗД = Новый ТаблицаЗначений;
ТЗД.Колонки.Добавить("Дата");
ТЗД.Колонки.Добавить("номерИд");
    ТЗД.Колонки.Добавить("Отправитель");
ТЗД.Колонки.Добавить("Получатель");
// Табличная часть
    ТЗТ = Новый ТаблицаЗначений;
ТЗТ.Колонки.Добавить("номерИд");
    ТЗТ.Колонки.Добавить("ШК");
ТЗТ.Колонки.Добавить("Количество"); 

Пока ЧтениеXML.Прочитать() Цикл
     Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда 
//Сообщить(ЧтениеXML.Имя); 
Если ЧтениеXML.Имя="Накладная" Тогда
Счетчик = Счетчик + 1;
НоваяСтрокаТЗД = ТЗД.Добавить();  
//Сообщить(ПреобразоватьДату(ЧтениеXML.ПолучитьАтрибут("дата")));
НоваяСтрокаТЗД.Дата = ПреобразоватьДату(ЧтениеXML.ПолучитьАтрибут("дата"));
НоваяСтрокаТЗД.номерИд = ЧтениеXML.ПолучитьАтрибут("номерИд");
НоваяСтрокаТЗТ = ТЗТ.Добавить();
НоваяСтрокаТЗТ.номерИд = ЧтениеXML.ПолучитьАтрибут("номерИд");
ИначеЕсли ЧтениеXML.Имя="Отправитель" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗД.Отправитель = ЧтениеXML.Значение; 
ИначеЕсли ЧтениеXML.Имя="Получатель" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗД.Получатель = ЧтениеXML.Значение; 
   ИначеЕсли ЧтениеXML.Имя="ШК" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗТ.ШК = ЧтениеXML.Значение; 
ИначеЕсли ЧтениеXML.Имя="Количество" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗТ.Количество = ЧтениеXML.Значение; 
        КонецЕсли;
    КонецЕсли;
КонецЦикла;
Для Каждого Док Из ТЗД Цикл 
Документ = Документы.Перемещение.СоздатьДокумент();
ЗаполнениеШапкиДокумента(Документ, ДеревоНастроекПользователя, Истина);
//Документ.ТорговыйОбъект = Справочники.ТорговыеОбъекты.НайтиПоКоду("00001");
//Документ.Валюта = Константы.ВалютаУправленческогоУчета.Получить();
Форма = Документ.ПолучитьФорму("ФормаДокумента");
Форма.ЭтаФорма.Валюта = Константы.ВалютаУправленческогоУчета.Получить();
Форма.ЭтаФорма.ТорговыйОбъект = Справочники.ТорговыеОбъекты.НайтиПоКоду("00001");
Форма.Дата = Док.Дата;
Форма.ФирмаОтправитель = Справочники.Фирмы.НайтиПоКоду("0000001");
Отправитель = "ОС0000" + Док.Отправитель;
Форма.ЭлементыФормы.СкладОтправитель.Значение = Справочники.Склады.НайтиПоКоду(Отправитель);
Форма.ФирмаПолучатель  = Справочники.Фирмы.НайтиПоКоду("0000001");
Получатель = "ОС0000" + Док.Получатель;
Форма.ЭлементыФормы.СкладПолучатель.Значение = Справочники.Склады.НайтиПоКоду(Получатель);
//Форма.ЭлементыФормы.ПереместитьПоЦенамСкладаПолучателя.Значение = Истина;
Для Каждого Товар Из ТЗТ Цикл 
Если Док.номерИд = Товар.номерИд Тогда 
ШК = Справочники.ШтрихКоды.НайтиПоНаименованию(Товар.ШК);
Номенклатура = ШК.ХарактеристикаНоменклатуры.Владелец;
НоваяСтрока = Форма.ЭтаФорма.Товары.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ШК.ХарактеристикаНоменклатуры;
НоваяСтрока.Единица    = ШК.Единица;
НоваяСтрока.Коэффициент = ШК.Единица.Коэффициент;
НоваяСтрока.Количество = Товар.Количество;
КонецЕсли;
КонецЦикла;
Форма.ОбновитьТабличнуюЧастьДокумента(Истина, Ложь, Ложь);
Форма.ЭтаФорма.Записать();
КонецЦикла;
КонецПроцедуры

Процедура ПриОткрытии()
Счетчик = 0;
ПредедущаяЗапись = Неопределено;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("c:/Обмен/Для сайта/export_orders.xml");
// Документ
ТЗД = Новый ТаблицаЗначений;
ТЗД.Колонки.Добавить("Дата");
ТЗД.Колонки.Добавить("номерИд");
    ТЗД.Колонки.Добавить("Отправитель");
ТЗД.Колонки.Добавить("Получатель");
// Табличная часть
    ТЗТ = Новый ТаблицаЗначений;
ТЗТ.Колонки.Добавить("номерИд");
    ТЗТ.Колонки.Добавить("ШК");
ТЗТ.Колонки.Добавить("Количество"); 

Пока ЧтениеXML.Прочитать() Цикл
     Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда 
//Сообщить(ЧтениеXML.Имя); 
Если ЧтениеXML.Имя="Накладная" Тогда
Счетчик = Счетчик + 1;
НоваяСтрокаТЗД = ТЗД.Добавить();  
//Сообщить(ПреобразоватьДату(ЧтениеXML.ПолучитьАтрибут("дата")));
НоваяСтрокаТЗД.Дата = ПреобразоватьДату(ЧтениеXML.ПолучитьАтрибут("дата"));
НоваяСтрокаТЗД.номерИд = ЧтениеXML.ПолучитьАтрибут("номерИд");
НоваяСтрокаТЗТ = ТЗТ.Добавить();
НоваяСтрокаТЗТ.номерИд = ЧтениеXML.ПолучитьАтрибут("номерИд");
ИначеЕсли ЧтениеXML.Имя="Отправитель" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗД.Отправитель = ЧтениеXML.Значение; 
ИначеЕсли ЧтениеXML.Имя="Получатель" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗД.Получатель = ЧтениеXML.Значение; 
   ИначеЕсли ЧтениеXML.Имя="ШК" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗТ.ШК = ЧтениеXML.Значение; 
ИначеЕсли ЧтениеXML.Имя="Количество" Тогда 
ЧтениеXML.Прочитать();
//Сообщить(ЧтениеXML.Значение);
НоваяСтрокаТЗТ.Количество = ЧтениеXML.Значение; 
        КонецЕсли;
    КонецЕсли;
КонецЦикла;
Для Каждого Док Из ТЗД Цикл 
Документ = Документы.Перемещение.СоздатьДокумент();
ЗаполнениеШапкиДокумента(Документ, ДеревоНастроекПользователя, Истина);
//Документ.ТорговыйОбъект = Справочники.ТорговыеОбъекты.НайтиПоКоду("00001");
//Документ.Валюта = Константы.ВалютаУправленческогоУчета.Получить();
Форма = Документ.ПолучитьФорму("ФормаДокумента");
Форма.ЭтаФорма.Валюта = Константы.ВалютаУправленческогоУчета.Получить();
Форма.ЭтаФорма.ТорговыйОбъект = Справочники.ТорговыеОбъекты.НайтиПоКоду("00001");
Форма.Дата = Док.Дата;
Форма.ФирмаОтправитель = Справочники.Фирмы.НайтиПоКоду("0000001");
ККМОтправитель = Справочники.ККМ.НайтиПоРеквизиту("ЛогическийНомер", Число(Док.Отправитель));
//Отправитель = "ОС0000" + Док.Отправитель;
Форма.ЭлементыФормы.СкладОтправитель.Значение = Справочники.Склады.НайтиПоНаименованию(ККМОтправитель);
Форма.ФирмаПолучатель  = Справочники.Фирмы.НайтиПоКоду("0000001");
ККМПолучатель = Справочники.ККМ.НайтиПоРеквизиту("ЛогическийНомер", Число(Док.Получатель));
//Получатель = "ОС0000" + Док.Получатель;
Форма.ЭлементыФормы.СкладПолучатель.Значение = Справочники.Склады.НайтиПоНаименованию(ККМПолучатель);
//Форма.ЭлементыФормы.ПереместитьПоЦенамСкладаПолучателя.Значение = Истина;
Для Каждого Товар Из ТЗТ Цикл 
Если Док.номерИд = Товар.номерИд Тогда 
ШК = Справочники.ШтрихКоды.НайтиПоНаименованию(Товар.ШК);
Номенклатура = ШК.ХарактеристикаНоменклатуры.Владелец;
НоваяСтрока = Форма.ЭтаФорма.Товары.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ШК.ХарактеристикаНоменклатуры;
НоваяСтрока.Единица    = ШК.Единица;
НоваяСтрока.Коэффициент = ШК.Единица.Коэффициент;
НоваяСтрока.Количество = Товар.Количество;
КонецЕсли;
КонецЦикла;
    Форма.ЭлементыФормы.Комментарий.Значение = "Выгружен из интернет магазина " + ТекущаяДата();
Форма.ОбновитьТабличнуюЧастьДокумента(Истина, Ложь, Ложь);
Форма.ЭтаФорма.Записать();
    КонецЦикла;
    ЗавершитьРаботуСистемы();
КонецПроцедуры

Read More...

v8.x: Ввести дату, ввод даты

Leave a Comment
ДатаНапоминания = РабочаяДата;
Подсказка = "Введите дату и время";
ЧастьДаты = ЧастиДаты.ДатаВремя;
Если ВвестиДату(ДатаНапоминания, Подсказка, ЧастьДаты) Тогда
// обработка даты напоминания
КонецЕсли  
Read More...

v8.x: Как найти битую ссылку

Leave a Comment
Функция ОбъектБДСуществует(ТестоваяСсылка) Экспорт

    МД = Метаданные.НайтиПоТипу(ТипЗнч(ТестоваяСсылка));
    ИмяОбъекта = МД.Имя;
    ПолноеИмяОбъекта = МД.ПолноеИмя();

    Запрос = новый Запрос();
    Запрос.Текст =
    "ВЫБРАТЬ
    |   ИСТИНА КАК СсылкаБДСуществует
    |ИЗ
    |   " + ПолноеИмяОбъекта + " КАК " + ИмяОбъекта + "
    |ГДЕ
    |   " + ИмяОбъекта + ".Ссылка = &Cсылка";
    Запрос.УстановитьПараметр("Cсылка", ТестоваяСсылка);
    РезультатЗапроса = Запрос.Выполнить();

    Возврат Не РезультатЗапроса.Пустой();

КонецФункции   
Read More...

Как получить дату и время создания элемента справочника или документа по ссылке

Leave a Comment
 // но по GUID можно определить время и дату
Функция ДатаСозданияСсылки(Ссылка)
    ГУИД = Ссылка.УникальныйИдентификатор();
    Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);
    Разрядность = СтрДлина(Строка16);
    ЧислоСек = 0;
    Для Позиция = 1 По Разрядность Цикл
        ЧислоСек = ЧислоСек + Найти("123456789abcdef",Сред(Строка16,Позиция,1))*Pow(16,Разрядность - Позиция);
    КонецЦикла;
    ЧислоСек = ЧислоСек / 10000000;
    Возврат Дата(1582, 10, 15, 04, 00, 00) + ЧислоСек;
КонецФункции   
Read More...

Как в 1с 8 Получить список подчиненных документов

1 comment
Функция ПолучитьСписокПодчиненныхДокументов(ДокументОснование) Экспорт
        
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    СтруктураПодчиненности.Ссылка
                   |ИЗ
                   |    КритерийОтбора.СвязанныеДокументы(&ЗначениеКритерияОтбора) КАК СтруктураПодчиненности";
    
    Запрос.УстановитьПараметр("ЗначениеКритерияОтбора", ДокументОснование);
    Возврат Запрос.Выполнить().Выгрузить();
    
КонецФункции
Read More...

1с программно проверить доступность роли пользователю?

Leave a Comment
КОД: ВЫДЕЛИТЬ ВСЕ
Если Не РольДоступна("Продавец") Тогда
    Сообщить("Доступ запрещен!");
КонецЕсли;


Получение информации о ролях конфигурации

КОД: ВЫДЕЛИТЬ ВСЕ
Функция СписокВозможныхРолейКонфигурации()
   СписокРолей = новый СписокЗначений;
   РолиКонфигурации = Метаданные.Роли;
   Для каждого Роль из РолиКонфигурации Цикл
      СписокРолей.Добавить(Роль.Имя);
   КонецЦикла;
   Возврат СписокРолей;
КонецФункции

Read More...

Конфигурация узла ИБ не соответствует ожидаемой

Leave a Comment

Для платформ 1с 8.x при возникновении ошибки "Конфигурация узла распределенной ИБ не соответствует ожидаемой"



Read More...

пятница, 17 июня 2011 г.

1c 8 Как убрать пробелы между триадами цифр

Leave a Comment
1с 8 Как убрать пробелы в числах

 Администрирование-Региональные установки информационной базы-группировка-выставить значение на 0. Пробел в числах уберется.
Read More...

четверг, 9 июня 2011 г.

Формула расчета процента наценки

Leave a Comment

ПроцентНаценки = ((ЦенаВРознице - Цена) / Цена) * 100
Read More...