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

1c8 Учетная политика организации - неполное/некорректное заполнение

Leave a Comment
Учетная политика и настройка параметров учета (Сервис - Настройка
учета) задают программе алгоритм, согласно которому производятся
многие регламентные действия (при закрытии месяца, при проведении
других регламентных документов), определяется метод списания МПЗ,
параметры ведения налогового учета и многое другое. Во всех
методических материалах указано, что именно с заполнения этих настроек
должна начинаться работа с программой, тем не менее, часто этому не
уделяют должного внимания. Нет смысла здесь рассматривать все
параметры учетной политики (они разные в каждой программе), главное -
все они должны быть просмотрены, осмыслены, заполнены.
Кстати, здесь есть приложение <<Мастер учетной политики>>, с помощью
которого можно быстро сформировать приказ об учетной политике
организации.
Read More...

1c8 У текущего пользователя нет ролей, допускающих запуск информационной базы!

Leave a Comment
В стандартных конфигурациях есть такая проверка, например :
В ЗУПе у пользователя должна быть доступна роль "Пользователь" или
"ПолныеПрава"
В Бухгалтерии у пользователя должна быть доступна роль "Бухгалтер" или
"ПолныеПрава"

// Функция проверяет установлены ли у пользователя роли,
// с которыми можно запускать конфигурацию
Функция ЕстьДоступныеПраваДляЗапускаКонфигурации() Экспорт

Возврат РольДоступна("ПолныеПрава")
ИЛИ РольДоступна("Пользователь")
ИЛИ ЕстьРолиБезОграниченияПравДоступаНаУровнеЗаписей();

КонецФункции

//.....
// а ниже
Если НЕ ЕстьДоступныеПраваДляЗапускаКонфигурации() Тогда
Отказ = Истина;
#Если Клиент Тогда
Предупреждение("У текущего пользователя нет ролей, допускающих
запуск информационной базы!", 10, "Недостаточно прав доступа");
#КонецЕсли
КонецЕсли;

Read More...

1c8 Сообщение <<Деление на 0>>

Leave a Comment
Это сообщение возникает в том случае, если в алгоритме конфигурации
Используется деление и не выполняется проверка значения делителя.
Обычно эта ошибка возникает из-за того, что не заполнены какие-либо
данные (сумма, количество, коэффициенты и т.п.). Необходимые для
работы алгоритма данные должны быть заполнены, например, в документе
или справочнике, элемент которого выбран в документе. Обычно эта
проблема решается вводом необходимых для работы алгоритма данных и
повторным запуском алгоритма (формирования отчета или проведения
документов).
Read More...

1c8 Сообщение << Объект заблокирован>>

Leave a Comment
Это сообщение возникает в том случае, если выполняется некоторая
обработка изменяющая данные, а один из объектов (документ,
справочник)открыт кем-либо из пользователей для редактирования.
Например, это сообщение может быть выдано, если выполнять групповую
обработку документов, а один из обрабатываемых документов окажется
открытым. Название заблокированного документа обычно указывается в
сообщении. Следует закрыть редактируемый объект и повторить действия.
Read More...

Программа 1С 8 не загружается, выскакиваю через несколько секунд после регистрации.

Leave a Comment
Ошибки как таковой не пишется, только в диалоговом окне, где программа 1С Предприятие 8.1 редакция 10.3 и т.д перед вылетом появляется "не отвечает". Работаем локально. В конфигуратор захожу без проблем.

Решение:
1. Зайдите в рабочую папку вашей базы данных (путь к ней можно увидеть внизу окна выбора информационных баз при запуске 1С, выделив нужную базу). В этой папке должны лежать две служебные папки (1Cv8FTxt и 1Cv8Log), а также файл базы 1Cv8.1CD. Других файлов быть не должно (например, с типом .tmp или .lck). Если лишние файлы там есть – удаляйте (или переместите в какую-либо другую папку). Попробуйте зайти в программу.
2. Если не помог п.1, то запускаем файл C:\Programm Files\1Cv81\bin\chkdbfl.exe и в верхнем окне выбираем файл 1Cv8.1CD нужной базы (как его найти, рассказано выше), ставим галку «Исправлять обнаруженные ошибки» и жмем «Выполнить». Возможно будут найдены и исправлены какие-то ошибки в базе и она запустится.
3. Можно попробовать выгрузить данные из базы в файл (ведь в «Конфигуратор» Вы заходите), создать новую папку (базу) и загрузить информацию из файла в нее, прописав путь к ней в окне запуска. Бывало, что помогало.
Read More...

1c8 При выводе на печать кассовых документов не подставляются ответственные лица, как исправить?

Leave a Comment
При выводе на печать кассовых документов не подставляются
ответственные лица, генеральный директор и главный бухгалтер хотя они
в базе есть и приняты на работу, что нужно сделать чтобы они попадали
в печатную форму?

Для того чтобы ответственные лица попадали в печатную форму их
необходимо назначить. Их назначают в справочнике <<Предприятие --
Ответственные лица>>.
Необходимо указать дату начиная с которой назначаются ответственные
лица и в какой организации (если в базе ведется несколько юридических
лиц).

Read More...

1c8 Поиск в базе битых ссылок - "объект не найден"

Leave a Comment
В статье Битая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID мы обсуждали как востановить битые ссылки! 
А вот как найти в базе все битые ссылки, которые имеют вид типа "<Объект не найден> (137:8b270030482898d011daad3cc45fc830)"? 

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

Процедура КнопкаВыполнитьНажатие(Кнопка)
ИспользоватьОграничение = ЗначениеЗаполнено(ОграничениеТипов);
РезультатПоиска.Очистить();
Для Каждого ОбъектыМетаданных Из КоллекцияОбъектов Цикл
Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
Состояние(ОбъектМетаданных.ПолноеИмя());
ПроверитьОбъектНаБитыеСсылки(ОбъектМетаданных);
КонецЦикла;
КонецЦикла;
Для Каждого ОбъектыМетаданных Из КоллекцияРегистров Цикл
Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
Состояние(ОбъектМетаданных.ПолноеИмя());
ПроверитьРегистрНаБитыеСсылки(ОбъектМетаданных);
КонецЦикла;
КонецЦикла;
//Анализ последовательностей
//ПроверитьОбъектНаБитыеСсылки(Метаданные.Справочники.СотрудникиОрганизаций);
КонецПроцедуры

Процедура ВывестиДанные(ТекстЗапроса)
Запрос = Новый Запрос(ТекстЗапроса);
Попытка 
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
ТЗ = РезультатЗапроса.Выгрузить();
Для Каждого Стр Из ТЗ Цикл
ОбработкаПрерыванияПользователя();
Строка = РезультатПоиска.Добавить();
ЗаполнитьЗначенияСвойств(Строка, Стр);
КонецЦикла;
КонецЕсли;
Исключение
Сообщить(ИнформацияОбОшибке().Описание + " " + ИнформацияОбОшибке().Причина);
КонецПопытки;
КонецПроцедуры

Процедура ПроверитьРегистрНаБитыеСсылки(ОбъектМетаданных)
ИмяТаблицы = ОбъектМетаданных.ПолноеИмя();
Если Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных) Тогда
Если ОбъектМетаданных.РежимЗаписи = НезависимыйРежимЗаписи Тогда
//АнализСвойствРегистраСведений(ОбъектМетаданных, ОбъектМетаданных.Измерения, ИмяТаблицы);
//АнализСвойствРегистраСведений(ОбъектМетаданных, ОбъектМетаданных.Ресурсы, ИмяТаблицы);
//АнализСвойствРегистраСведений(ОбъектМетаданных, ОбъектМетаданных.Реквизиты, ИмяТаблицы);
Возврат;
КонецЕсли;
АнализСвойствРегистра(ОбъектМетаданных, ОбъектМетаданных.Реквизиты, ИмяТаблицы);
КонецЕсли;
АнализСвойствРегистра(ОбъектМетаданных, ОбъектМетаданных.Измерения, ИмяТаблицы);
АнализСвойствРегистра(ОбъектМетаданных, ОбъектМетаданных.Реквизиты, ИмяТаблицы);
АнализРегистратораРегистра(ОбъектМетаданных, ИмяТаблицы);
Если Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных) Тогда
//Для рег. бухгалтерии анализ субконто
КонецЕсли;
Если Метаданные.РегистрыРасчета.Содержит(ОбъектМетаданных) Тогда
//Для регистров расчета доп. анализ
КонецЕсли;

КонецПроцедуры

Процедура ПроверитьОбъектНаБитыеСсылки(ОбъектМетаданных)
ИмяТаблицы = ОбъектМетаданных.ПолноеИмя();
АнализСвойствОбъекта(ОбъектМетаданных, ОбъектМетаданных.Реквизиты, ИмяТаблицы);
Для Каждого ТабЧасть Из ОбъектМетаданных.ТабличныеЧасти Цикл
Если ТабличныеЧастиИсключения.Найти(ТабЧасть.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
АнализСвойствОбъекта(ОбъектМетаданных, ТабЧасть.Реквизиты, ИмяТаблицы + "." + ТабЧасть.Имя)
КонецЦикла;
//проверка владельца у справочников
Если Метаданные.Справочники.Содержит(ОбъектМетаданных) И ОбъектМетаданных.Владельцы.Количество() > 0 Тогда
МассивВладельцев = Новый Массив;
Для Каждого Элемент Из ОбъектМетаданных.Владельцы Цикл
МассивВладельцев.Добавить(Элемент);
КонецЦикла;
//АнализСвойствВладельцаОбъекта(ОбъектМетаданных, МассивВладельцев, ИмяТаблицы);
КонецЕсли;
//Для задач поле исполнитель
//проверки в журналах
ОбработкаПрерыванияПользователя();
КонецПроцедуры

Процедура АнализСвойствОбъекта(ОбъектМетаданных, Свойства, ИмяТаблицы)
Для Каждого Реквизит Из Свойства Цикл
Если РеквизитыИсключения.Найти(Реквизит.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Для Каждого моТип Из Реквизит.Тип.Типы() Цикл
ТекстЗапроса = "";
МетаданныеТипа = Метаданные.НайтиПоТипу(моТип);
Если МетаданныеТипа <> Неопределено
И Не Метаданные.Перечисления.Содержит(МетаданныеТипа) Тогда
Если ИспользоватьОграничение Тогда
Если Не ПоискПоТипу(МетаданныеТипа.ПолноеИмя()) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ДобавитьВЗапросОбъект(ТекстЗапроса, ОбъектМетаданных, ИмяТаблицы, Реквизит.Имя, моТип);
КонецЕсли;
Если Не ПустаяСтрока(ТекстЗапроса) Тогда
ВывестиДанные(ТекстЗапроса);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

Процедура АнализСвойствРегистра(ОбъектМетаданных, Свойства, ИмяТаблицы)
Для Каждого Реквизит Из Свойства Цикл
Если РеквизитыИсключения.Найти(Реквизит.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Для Каждого моТип Из Реквизит.Тип.Типы() Цикл
ТекстЗапроса = "";
МетаданныеТипа = Метаданные.НайтиПоТипу(моТип);
Если МетаданныеТипа <> Неопределено
И Не Метаданные.Перечисления.Содержит(МетаданныеТипа) Тогда
Если ИспользоватьОграничение Тогда
Если Не ПоискПоТипу(МетаданныеТипа.ПолноеИмя()) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ДобавитьВЗапросРегистр(ТекстЗапроса, ОбъектМетаданных, ИмяТаблицы, Реквизит.Имя, моТип);
КонецЕсли;
Если Не ПустаяСтрока(ТекстЗапроса) Тогда
ВывестиДанные(ТекстЗапроса);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

Процедура АнализРегистратораРегистра(ОбъектМетаданных, ИмяТаблицы)
МассивРегистраторов = ПолучитьСписокРегистраторов(ОбъектМетаданных);
Для Каждого Регистратор Из МассивРегистраторов Цикл
Если РеквизитыИсключения.Найти("Регистратор") <> Неопределено Тогда
Продолжить;
КонецЕсли;
моТип = Регистратор;
ТекстЗапроса = "";
МетаданныеТипа = Метаданные.НайтиПоТипу(моТип);
Если МетаданныеТипа <> Неопределено
И Не Метаданные.Перечисления.Содержит(МетаданныеТипа) Тогда
Если ИспользоватьОграничение Тогда
Если Не ПоискПоТипу(МетаданныеТипа.ПолноеИмя()) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ДобавитьВЗапросРегистр(ТекстЗапроса, ОбъектМетаданных, ИмяТаблицы, "Регистратор", моТип);
КонецЕсли;
Если Не ПустаяСтрока(ТекстЗапроса) Тогда
ВывестиДанные(ТекстЗапроса);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Функция ПолучитьСписокРегистраторов(ОбъектМетаданных)
МассивРегистраторов = Новый Массив;
МенеджерОбъект = ПолучитьМенеджерОбъекта(ОбъектМетаданных);
Если МенеджерОбъект <> Неопределено Тогда
НаборЗаписей = МенеджерОбъект.СоздатьНаборЗаписей();
ЭлементОтбора = НаборЗаписей.Отбор.Регистратор;
МассивРегистраторов = ЭлементОтбора.ТипЗначения.Типы();
КонецЕсли;
Возврат МассивРегистраторов;
КонецФункции

Функция ПолучитьМенеджерОбъекта(ОбъектМетаданных)
Перем МенеджерОбъекта;
Если Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных) Тогда
МенеджерОбъекта = РегистрыБухгалтерии[ОбъектМетаданных.Имя];
ИначеЕсли Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных) Тогда
МенеджерОбъекта = РегистрыНакопления[ОбъектМетаданных.Имя];
ИначеЕсли Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных) Тогда
МенеджерОбъекта = РегистрыСведений[ОбъектМетаданных.Имя];
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(ОбъектМетаданных) Тогда
МенеджерОбъекта = РегистрыРасчета[ОбъектМетаданных.Имя];
КонецЕсли;
Возврат МенеджерОбъекта;
КонецФункции

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

Процедура ДобавитьВЗапросРегистр(ТекстЗапроса, ОбъектМетаданных, ИмяТаблицы, ИмяРеквизита, ТипРеквизита)
Текст = "ВЫБРАТЬ Об." + ИмяРеквизита + " КАК Объект, 
| """ + ИмяТаблицы + "." + ИмяРеквизита + """ КАК ТаблицаИсточник, 
| Об.Регистратор КАК ОбъектИсточник,
| " + ДобавитьОписаниеТипа(ИмяРеквизита, ТипРеквизита) + " 
|ИЗ 
| " + ИмяТаблицы + " КАК Об
|ГДЕ " + ДобавитьУсловия(ИмяРеквизита, ТипРеквизита);
ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС) + Текст;
КонецПроцедуры

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

Функция ДобавитьУсловия(ИмяРеквизита, ТипРеквизита)
мдОбъекта = Метаданные.НайтиПоТипу(ТипРеквизита);
ИмяТаблицы = мдОбъекта.ПолноеИмя();
ПроверкаНаПустыеЗначения = " Об." + ИмяРеквизита + " ССЫЛКА " + ИмяТаблицы;
ПроверкаНаПустыеЗначения = ПроверкаНаПустыеЗначения + " И ВЫРАЗИТЬ(Об." + ИмяРеквизита + " КАК " + ИмяТаблицы + ").Ссылка есть null";
Если Не Метаданные.Перечисления.Содержит(мдОбъекта) Тогда
ПроверкаНаПустыеЗначения = ПроверкаНаПустыеЗначения + " И Об." + ИмяРеквизита + " <> Значение(" + ИмяТаблицы + ".ПустаяСсылка)";
КонецЕсли;
Возврат ПроверкаНаПустыеЗначения;
КонецФункции

Функция ДобавитьОписаниеТипа(ИмяРеквизита, ТипРеквизита)
ОбъектТипа = Метаданные.НайтиПоТипу(ТипРеквизита);
ИмяТаблицы = ОбъектТипа.ПолноеИмя();
ОписаниеТипа = """" + ИмяТаблицы + """ КАК ТипДанных";
Возврат ОписаниеТипа;
КонецФункции

Процедура ОграничениеТиповТипДанныхНачалоВыбора(Элемент, СтандартнаяОбработка)
Перем ЭлементСписка;
СтандартнаяОбработка = Ложь;
Строка = ЭлементыФормы.ОграничениеТипов.ТекущиеДанные;
Если Не ПустаяСтрока(Строка.ТипДанных) Тогда
ЭлементСписка = СписокТипов.НайтиПоЗначению(Строка.ТипДанных);
КонецЕсли;
ВыбранныйЭлемент = СписокТипов.ВыбратьЭлемент( , ЭлементСписка);
Если ВыбранныйЭлемент <> Неопределено Тогда
Строка.ТипДанных = ВыбранныйЭлемент.Значение;
КонецЕсли;
КонецПроцедуры

РеквизитыИсключения = Новый Массив;

ТабличныеЧастиИсключения = Новый Массив;

СписокТипов = Новый СписокЗначений;
Для Каждого ОбъектМетаданных Из Метаданные.Справочники Цикл
СписокТипов.Добавить(ОбъектМетаданных.ПолноеИмя(), ОбъектМетаданных.Имя, , БиблиотекаКартинок.СправочникОбъект);
КонецЦикла;

Для Каждого ОбъектМетаданных Из Метаданные.Документы Цикл
СписокТипов.Добавить(ОбъектМетаданных.ПолноеИмя(), ОбъектМетаданных.Имя, , БиблиотекаКартинок.ДокументОбъект);
КонецЦикла;

КоллекцияОбъектов = Новый Массив;
КоллекцияОбъектов.Добавить(Метаданные.ПланыОбмена);
КоллекцияОбъектов.Добавить(Метаданные.Справочники);
КоллекцияОбъектов.Добавить(Метаданные.Документы);
КоллекцияОбъектов.Добавить(Метаданные.ПланыВидовХарактеристик);
КоллекцияОбъектов.Добавить(Метаданные.ПланыСчетов);
КоллекцияОбъектов.Добавить(Метаданные.ПланыВидовРасчета);
КоллекцияОбъектов.Добавить(Метаданные.БизнесПроцессы);
КоллекцияОбъектов.Добавить(Метаданные.Задачи);

КоллекцияРегистров = Новый Массив;
КоллекцияРегистров.Добавить(Метаданные.РегистрыСведений);
КоллекцияРегистров.Добавить(Метаданные.РегистрыНакопления);
КоллекцияРегистров.Добавить(Метаданные.РегистрыБухгалтерии);
КоллекцияРегистров.Добавить(Метаданные.РегистрыРасчета);
Read More...

1c8 Ошибка при обращении к общему модулю (метод не найден и т.д.)

Leave a Comment
Функция ВернутьДанныеДляЗаполнения(Отчет, Форма, ПараметрыОтчета) Экспорт
// код обработки
КонецФункции

Read More...

1c8 Обновление 1С через интернет

Leave a Comment
Обновление 1С 7.7 через интернет 
Пользователи программных продуктов 1С:Предприятие 7.7 имеют возможность скачать обновления 1С 7.7 через интернет на сайте http://online.1c.ru 

Доступ для скачивания с сайта обновлений программных продуктов 1С:Предприятия 7.7 предоставляется только зарегистрированным пользователям программных продуктов (необходимо пройти проверку регистрационного номера на детальной странице программного продукта), за исключением продуктов, для которых поддержка осуществляется в рамках информационно-технологического сопровождения (ИТС). Подписчики ИТС могут получить обновление через интернет непосредственно из своих программ 1С:Предприятие 7.7 при наличии диска ИТС. 

На сайте представлены обновления конфигураций 1С:Предприятия 7.7, форм регламентированной отчетности, возможность оформить подписку на SMS-уведомления о выходе обновлений (конфигураций, регламентированной отчетности, платформы) к программным продуктам, доступ для скачивания игр, книг в электронном виде, аудиокниг. 

Обновление 1С 8.х через интернет 
Где можно скачать обновления 1С:Предприятие 8? 

Пользователи программных продуктов 1С:Предприятие 8 имеют возможность скачать обновления конфигураций 1С 8 через интернет на сайте интернет поддержки пользователей http://users.v8.1c.ru 

Доступ на сайт интернет поддержки могут получить пользователи программных продуктов 

* 1С:Предприятие 8 версий ПРОФ, оформившие подписку на информационно-технологическое сопровождение (ИТС) 
* 1С:Предприятие 8 базовых версий 

На сайте представлена информация о конфигурациях 1С:Предприятия 8, технологической платформе 1С:Предприятие 8, проблемным ситуациям и ошибкам, администрировании 1С:Предприятия 8. На веб-страницах конфигураций представлена информация о номерах релизов конфигураций, дате их выхода, выпусках ИТС, на которых опубликовано обновление конфигурации до данного релиза. По каждому релизу представлена информация. 

Как получить пароль для базовой версий 1С:Предприятие 8? 

Пользователи базовых версий программ 1С:Предприятие 8, например, 1С:Бухгалтерия 8 базовая версия, 1С:Упрощенка 8, 1С:Предприниматель 8, 1С:Зарплата и Управление Персоналом 8 базовая версия, 1С:Управление Торговлей 8 базовая версия и других базовых версий 1С 8 получают пароль пользователя для сайта http://users.v8.1c.ru, самостоятельно регистрируясь на сайте по PIN-коду программы. Для того что бы наглядно продемонстрировать процесс получения пароля для базовых версий 1С:Предприятие 8 мы специально подготовили этот видеоролик, который откроется в новом окне. 

Как получить пароль для ПРОФ версий 1С:Предприятие 8? 

Пользователи ПРОФ версий программ 1С:Предприятие 8, например, 1С:Бухгалтерия 8, 1С:Зарплата и Управление Персоналом 8, 1С:Управление Торговлей 8 и других ПРОФ версий 1С 8 могут получить и использовать пароль пользователя для сайта http://users.v8.1c.ru, только при наличии подписки на диски ИТС. 

Если Вы еще не зарегистрированы на сайте интернет поддержки пользователей 1С:Предприятия 8, то для регистрации Вам необходимо получить пароль для Вашего программного продукта. В качестве кода пользователя на сайте используется регистрационный номер одной из основных поставок 1С:Предприятия 8. Пароль необходимо получить у фирмы партнера "1С", у которой оформлена Ваша подписка на ИТС. 
Read More...

1cv8 Как увеличить шрифт в текстовом документе, таблице или HTML-документе?

Leave a Comment
Вопрос: При редактировании текстов в текстовом документе, таблице или HTML-документе, по умолчанию отображается слишком мелкий шрифт. Есть ли какая-либо возможность увеличить его для того, чтобы работать с текстами было комфортнее? 

Ответ: "1С:Предприятие" позволяет довольно гибко настраивать отображение текста. 

Для текстовых документов, вы можете указать шрифт по умолчанию, при необходимости увеличив его размер. Сделать это просто - достаточно зайти в меню "Сервис", выбрать "Параметры" и перейти на закладку "Тексты". Внизу этой закладки доступен элемент "Шрифт", настройка которого позволит отображать все текстовые документы так, как вы пожелаете. 
Для табличных документов существует целых два способа. Первый - включить отображение панели инструментов "Форматирование" (к слову, обратите внимание и на панель "Табличный документ"). Достаточно нажать правой кнопкой мыши на пустом месте рядом с кнопочками видимых панелей инструментов и включить галочку напротив "Форматирование". Через эту панель вы сможете настраивать шрифт и его размер у определенных ячеек вашего табличного документа, у выделенных ячеек, либо у всех сразу. 
Второй способ - при любом открытом табличном документе, в меню появляется пункт "Таблица", в котором в подменю "Вид" есть пункт "Масштаб" - именно этот пункт позволит быстро изменить масштаб документа ничего не меняя в его содержимом. Того же самого эффекта можно быстро достичь, удерживая клавишу Ctrl и при этом прокручивая колесико мыши в разные направления. 
Для открытых документов HTML так же подойдет первый способ для табличных документов (через панель инструментов "Форматирование"). А в качестве второго (быстрого) способа можно тоже использовать клавишу Ctrl и колесико вашей мыши.
Read More...

1cv8 Как привести учет, контролируемый последовательностью, в актуальное состояние?

Leave a Comment
Для пользователя:
Воспользоваться режимом восстановления последовательности из диалога «Операции» / «Проведение документов…» / «Восстановление последовательностей»

Для программиста:
Можно создать Регламентное задание, которое будет автоматически Восстанавливать последовательность!
Read More...

1c8 Как поставить организацию по умолчанию в программе?

Leave a Comment
Заходите в Пункт меню сервис, настройки пользователя, затем
раскрываете папку <<Ocнoвныe знaчeния для пoдcтaнoвки в дoкумeнты и
cпpaвoчники>> и заполняете реквизит <<Основная организация>>.
Read More...

1c8 Как по GUID определить время и дату создания ссылки?

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

1c8 Как настроить отображение даты?

Leave a Comment
Есть сотрудник 1946 года рождения. Программа не пропускает этот год, а выдает 2046 год. И, соответствено, выдает ошибку. 
Изменить год начала рабочего столетия и поменять количество символов в представлении даты. Делается в Сервис - параметры.
Read More...

1c8: Как изменить размер шрифта для форм?

Leave a Comment
При отображении форм 1С:Предприятия 8 используется системный шрифт
стандартного размера. Изменить размер шрифта можно указанием нужного
масштаба экрана в свойствах рабочего стола ОС Windows (свойства
экрана, закладка Параметры - Дополнительно - Масштаб), вместо
стандартного масштаба (96 DPI) установите нужный вам.
Read More...

1c8 Использование транзакций

Leave a Comment
Использование транзакций в 1С Транзакция предназначена для записи в информационную базу согласованных изменений. Все изменения, внесенные в информационную базу после начала транзакции, будут затем либо целиком записаны, либо целиком отменены. Ключевыми функциями для работы в транзакции всегда являлись: начать, завершить, отменить. Вспомогательные: активность другой транзакции, возможность начала транзакции. 
Простой пример использования транзакций приведен в коде ниже, который устанавливает зависимость создания элемента справочника номенклатуры и элемента справочника единицы измерения, владельцем которого является номенклатура. Если не удалось создать базовую единицу измерения, то и нельзя сохранять саму новую номенклатуру. Все действия происходят в транзакции: 

Пример

Попытка

// Начать транзакцию
НачатьТранзакцию( РежимУправленияБлокировкойДанных.Автоматический );

// Создать элемент номенклатура, записать
// Создать элемент единицы измерения, установить владельца, записать
// Обновить базовую единицу измерения в номенклатуре, записать

// Зафиксировать транзакцию
ЗафиксироватьТранзакцию();

Исключение

// Отменить транзакцию
ОтменитьТранзакцию();

КонецПопытки;  
Read More...

1c8 Где посмотреть какой релиз платформы и программы конфигурации

Leave a Comment
Для того чтобы посмотреть релиз платформы и программы как 1С
Бухгалтерия 8.1, так и любой конфигурации 1С 8.1, необходимо войти в
программу в режиме <1С Предприятиеперейти <Справка - О программе>.
Релиз системных файлов (платформы) программы указан в верхней строке
этого окна 1С Предприятие (релиз платформы).
Конфигурация: 1С Бухгалтерия предприятия, редакция 1.8 (релиз конфигурации).
Read More...

1c8 не вводится новый элемент в справочник

Leave a Comment
Новый элемент или группу в справочник нельзя добавить если выключен
режим иерархического списка. Для того, чтобы включить этот режим
выберите в меню "Действия" пункт "Иерархический список" и установите
этот режим.
Read More...

1cv7 Бухгалтерия отчет "Акт сверки"

Leave a Comment
Настоящий отчет позволяет подготовить акт сверки (регламентированная и произвольная форма) с определенным контрагентом на заданную дату, исходя из данных, имеющихся в информационной базе.
Если в ходе сверки расхождений с контрагентом не выявлено, то можно поставить флажок "Согласованос контрагентом", тогда будут заполнены обе стороны акта. В ином случае та часть акта, которая должназаполняться по данным контрагента, остается пустой (предполагается, что ее контрагент заполнит само-стоятельно).

Скачать
Read More...

1c8 Подключение к MySQL базе

Leave a Comment
Вариант №1

Сервер="IP-адрес-сайта"; // IP адрес сайта
ПользовательСервера="имя-пользователя-базы-данных"; // имя пользователя базы данных
ПарольСервера="пароль-пользователя-базы-данных"; // пароль пользователя базы данных
БазаСервера="название-SQL-базы-данных";  // название SQL базы данных
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение_param = "driver={MySQL ODBC 5.1 Driver}; server="+СокрЛП(Сервер)+"; uid="+СокрЛП(ПользовательСервера)+"; pwd="+СокрЛП(ПарольСервера)+"; database="+СокрЛП(БазаСервера)+"; STMT=SET CHARACTER SET utf8";
Try
    Соединение.open(Соединение_param);
    СоединениеУстановлено = Истина;
    Сообщить("Соединение установлено");
Except
    ТекстСообщения = ""+ТекущаяДата()+" Connection error: "+ОписаниеОшибки();
    Сообщить(ТекстСообщения);
    СоединениеУстановлено = Ложь;
    return;
EndTry;   

Вариант №2

Соединение = Новый COMОбъект("ADODB.Connection");
ConnectionString = "driver={SQL Server}; server=; uid=; Pwd=; Database = "; // это для MS SQL строка
Попытка
  Соединение.Open(ConnectionString);
  Сообщить("Соединение осуществлено в "+ТекущаяДата());
Исключение
  Предупреждение("Невозможно установить соединение");  
  Возврат;
КонецПопытки;

ТекстЗакпроса = "....................";
НаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); 
НаборЗаписей.ActiveConnection = Соединение;
НаборЗаписей.Open(ТекстЗапроса);

Пока не НаборЗаписей.Eof() Цикл
//  ............код обработки.....................
НаборЗаписей.MoveNext();
КонецЦикла;
НаборЗаписей.Close();
Соединение.Close();
Сообщить("Обработка завершена в "+ТекущаяДата());   
Read More...

1c8 Запрос к базе данных SQL

Leave a Comment
Вариант №1 

Функция ПодключитьCOMОбъект(Путь) Экспорт 
    Отказ = Ложь;
    
    COMСоединение = Новый COMОбъект("ADODB.Connection");
    COMСоединение.ConnectionString  = ".....";
    COMСоединение.ConnectionTimeOut = 1200;
    COMСоединение.CursorLocation    = 3;
    
    Попытка
        COMСоединение.Open(COMСоединение.ConnectionString);
    Исключение
        Отказ = Истина;
        COMСоединение = "";
        Предупреждение("Невозможно установить соединение - " + ОписаниеОшибки());
        Возврат НЕ Отказ;
    КонецПопытки;
    
    Возврат НЕ Отказ;
КонецФункции

Процедура КнопкаВыплонитьНажатие(Кнопка)
    Если НЕ ПодключитьCOMОбъект(ПутьКФайлуГДБ) Тогда
        ЗакрытьФормуИндикатора();
        Возврат;    
    КонецЕсли;


    КомандаАДО = Новый COMОбъект("ADODB.Command");
    
    ТекстЗапроса = "S_elect id from nomenclature where ext_1c_id = 1";

    Рекордсет = Новый COMОбъект("ADODB.Recordset");
    Попытка
        Рекордсет = КомандаАДО.Execute();
    Исключение
        Предупреждение("Не получилось выполнить запрос!" + " - " + ОписаниеОшибки());
    КонецПопытки;
   Рекордсет.MoveFirst();                                                               
    Пока Рекордсет.EOF() = 0 Цикл   
       ОбработкаПрерыванияПользователя();
           айди = Рекордсет.Fields("id").Value;
           Сообщить(айди);
        КонецЦикла; 
КонецПроцедуры

Вариант №2

стрПодключения = "Driver={SQL Server};"
стрПодключения = стрПодключения + ИмяСервера + ";";
стрПодключения = стрПодключения +"Uid=" + ИмяПользователя + ";";
стрПодключения = стрПодключения + "Pwd=" + Пароль + ";";
стрПодключения = стрПодключения + "DataBase =" + ИмяБазы + ";";
стрПодключения = стрПодключения + "Pwd=" + Пароль + ";";

Connection = Новый COMОбъект("ADODB.Connection");
Connection.OpenServer = стрПодключения;

RS = Новый COMОбъект("ADODB.Recordset");

// Запрос к базе на языке SQL запросов.
RS.Open("S_elect * from TradeUnit", Connection);

Пока RS.EOF() = 0 Цикл

// Можно обращаться и обрабатывать значения полей выборки.
ИД = RS.Fields("ID").Value;
Код = RS.Fields("Code").Value;
   // Обработка других полей
RS.MoveNext();
КонецЦикла;

RS.Close();
Connection.Close();    
Read More...

1cv8 Как определить IP адрес текущего компьютера

Leave a Comment
Вариант №1
 //работает под толстым и тонким клиентами 
ремоте= Новый COMОбъект("rcbdyctl.setting"); 
Сообщить(ремоте.GetIpAddress);   

Вариант №2
ремоте= Новый COMОбъект("rcbdyctl.setting");
Сообщить(ремоте.GetIpAddress);   
Read More...

1Cv8 и Google Maps

Leave a Comment
 #НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   СсылкаНаБазу = ПолучитьНавигационнуюСсылкуИнформационнойБазы();
   APIГугла = Константы.КлючКарта.Получить();
 
   ТаблицаОбъектовДляВывода = Новый ТаблицаЗначений;
   ТаблицаОбъектовДляВывода.Колонки.Добавить("Наименование",Новый ОписаниеТипов("Строка"));
   ТаблицаОбъектовДляВывода.Колонки.Добавить("Город",Новый ОписаниеТипов("Строка"));
   ТаблицаОбъектовДляВывода.Колонки.Добавить("Адрес",Новый ОписаниеТипов("Строка"));
   ТаблицаОбъектовДляВывода.Колонки.Добавить("Широта",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,6)));
   ТаблицаОбъектовДляВывода.Колонки.Добавить("Долгота",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,6)));
   Если Параметры.ОтображатьСОтветственными Тогда
      ТаблицаОбъектовДляВывода.Колонки.Добавить("Ответственный",Новый ОписаниеТипов("Строка"));
   КонецЕсли;
 
   Для Каждого ТекЭлемент Из Параметры.ОбъектыДляОтображения Цикл
      КоординатыОбъекта = ОбщийМодульКартаСервер.ПолучитьКоординатыОбъекта(ТекЭлемент.Значение.ОбъектПосещения);
      Если КоординатыОбъекта = Неопределено Тогда
         Продолжить;
      Иначе
         НоваяСтрока = ТаблицаОбъектовДляВывода.Добавить();
         НоваяСтрока.Наименование = ТекЭлемент.Значение.ОбъектПосещения.Наименование;
         НоваяСтрока.Город = ТекЭлемент.Значение.ОбъектПосещения.Город.Наименование;
         НоваяСтрока.Адрес = ТекЭлемент.Значение.ОбъектПосещения.Адрес;
         НоваяСтрока.Широта = КоординатыОбъекта[0];
         НоваяСтрока.Долгота = КоординатыОбъекта[1];
         Если Параметры.ОтображатьСОтветственными Тогда
            НоваяСтрока.Ответственный = ТекЭлемент.Значение.Ответственный.Наименование;
         КонецЕсли;
      КонецЕсли;
   КонецЦикла;
 
   ТекстСкрипта = "data.addRows(" + Строка(ТаблицаОбъектовДляВывода.Количество()) + ");";
   Сч = 0;
   Для Каждого ТекСтрока Из ТаблицаОбъектовДляВывода Цикл
      ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 0, " +СтрЗаменить(Строка(ТекСтрока.Широта),",",".") + ");";
      ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 1, " +СтрЗаменить(Строка(ТекСтрока.Долгота),",",".") + ");";
      ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 2, '" +Строка(ТекСтрока.Наименование) + " "
      + Строка(ТекСтрока.Город) + " " + Строка(ТекСтрока.Адрес) + " " + ?(Параметры.ОтображатьСОтветственными, ".Ответственный: " + Строка(ТекСтрока.Ответственный), "") + " " + "');";
      Сч = Сч + 1;
   КонецЦикла;
СтраницаХТМЛ = "<html>
|  <head>
|    <script src=""http://maps.google.com/maps?file=api&v=2&key=" + APIГугла + """ type=""text/javascript""></script>
|    <script type=""text/javascript"" src=""http://www.google.com/jsapi""></script>
|  </head>
|
|  <body>
|    <div id=""map_div"" style=""width: 800px; height: 550px""></div>
|    <script type=""text/javascript"">
|
|      google.load(""visualization"", ""1"", {packages:[""map""]});
|      google.setOnLoadCallback(drawMap);
|      function checkIfGoogleLoad() {
|        if(!google.visualization) setTimeout(checkIfGoogleLoad, 1000);
| else drawMap();
|      }
|      function drawMap() {
|        var data = new google.visualization.DataTable();
|        data.addColumn('number', 'Lat');
|        data.addColumn('number', 'Lon');
|        data.addColumn('string', 'Name');" + ТекстСкрипта + "
|        var map = new google.visualization.Map(document.getElementById('map_div'));
|        map.draw(data, {showTip: true, mapType: 'normal'});
|      }
|      checkIfGoogleLoad();
|    </script>
|  </body>
|</html>"; 
КонецПроцедуры   
Read More...

1c8.2 Выполнение HTTP запроса и сохранение результата в файл

Leave a Comment
СерверИсточник = http://server.com;
Адрес = "/price.asp";
ИмяВходящегоФайла = "c:\temp\input.html";
НТТР = Новый HTTPСоединение(СерверИсточник);
НТТР.Получить(Адрес, ИмяВходящегоФайла);
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);  
Read More...

1c8.2 Загрузка и Просмотр файлов на FTP сервер

Leave a Comment
 // Загрузка файлов на FTP сервер
Процедура ЗагрузитьОтмеченные(Кнопка)
Сервер = Новый FTPСоединение(FTPServer);
Для Каждого Файл Из ПолеСписка Цикл
   Если Файл.Пометка Тогда
     Сервер.Получить(Файл.Значение.ПолноеИмя, "с:\temp" + Файл.Значение.ПолноеИмя);
     Файл.Пометка = Ложь;
   КонецЕсли;
КонецЦикла;
КонецПроцедуры

// Просмотр файлов на FTP сервере
Процедура Просмотреть(Кнопка)
Сервер = Новый FTPСоединение(FTPServer);
МассивФайлов = Сервер.НайтиФайлы("/","*.*");
Для Каждого Файл Из МассивФайлов Цикл
   Если Файл.ЭтоФайл() Тогда
     ПолеСписка.Добавить(Файл, Файл.Имя)
   КонецЕсли;
КонецЦикла;
КонецПроцедуры    
Read More...

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

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

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

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

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

Иногда штрихкод установлен, и всё равно не печатается. Найдите шрифт 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...

среда, 11 мая 2011 г.

1с и Excel

Leave a Comment
Функции на заметку хозяюшке для работы с Excel

Read More...

из Excel в 1с (Таблица значений)

Leave a Comment

Прочитал статью "Универсальное решение работы с Ексель". И опять чтение происходит путем перебора ячеек листа Ексель. Для больших файлов это очень медленно. Решил просмотреть ВСЕ обработки из рубрики 1С + Excel...
Read More...

Приемы работы с Таблицей Значений

Leave a Comment

Супер каротее с таблицей значений

Read More...

вторник, 10 мая 2011 г.

Как поставить обработку в автозагрузку 1c 8?

Leave a Comment
Доброго вечера!

Отладка самая противная часть во время любой разработки и мы постоянно пытаемся упростить этот процесс.
Чтобы не запускать каждый раз обработку руцями я пользуюсь такой конструкцией

ОткрытьФорму(Обработки.Каштатор.ПолучитьФорму("форма"));

Где Каштатор - это имя обработки, а форма имя формы, такой конструкцией можно вызывать абсолютно любую форму любого объекта в 1с. 

Чтобы заработала наша функция её необходимо вставить 

Конфигурация - Модуль обычного приложения - Процедура ПриНачалеРаботыСистемы()


Read More...

Обработка исключений в 1с 8

Leave a Comment
Добрый день, всем! Сегодня поговорим об исключительных ситуациях, когда приложение информирует пользователя о возникших ошибках и о том как их обработать.
Обработка исключений служит для перехвата и обработки сообщений об ошибках.
Как это работает? 


Read More...