Показать содержимое по тегу: 1с

db = Новый COMобъект("V83.COMConnector");
Попытка 
	соединение= db.Connect(СтрокаПодключения);
Исключение
	сообщить("база не открыта");
	Предупреждение(ОписаниеОшибки());
	Возврат ложь;
КонецПопытки;


НоваяНоменклатура=Справочники.Номенклатура.НайтиПоКоду("ВашКод");

GUID = НоваяНоменклатура.УникальныйИдентификатор();
GUIDCom  = соединение.NewObject("УникальныйИдентификатор", Строка(GUID)); 
НоменклатураСсылкаCom = ТекПодключение.Справочники.Номенклатура.ПолучитьСсылку(GUIDCom);

НовКартинкаОбъект = Соединение.Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();

НовКартинкаОбъект.Объект = НоменклатураСсылкаCom;
НовКартинкаОбъект.Наименование = НоваяНоменклатура.ОсновноеИзображение.Наименование;
НовКартинкаОбъект.ВидДанных = Соединение.Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
НовКартинкаОбъект.ИмяФайла = НоваяНоменклатура.ОсновноеИзображение.ИмяФайла;
	  
Картинка=НоваяНоменклатура.ОсновноеИзображение.Хранилище.Получить();
Двоичные        = Картинка.ПолучитьДвоичныеДанные();
ДвоичныеСтрокой    = Base64Строка(Двоичные);
ДвоичныеCOM        = Соединение.Base64Значение(ДвоичныеСтрокой);
МояКартинкаCOM  = Соединение.NewObject("Картинка",ДвоичныеCOM);
НовКартинкаОбъект.Хранилище = Соединение.NewObject("ХранилищеЗначения",МояКартинкаCOM);
		   
НовКартинкаОбъект.Записать();

Опубликовано в

Старенький слабенький компьютер после перепроведения центральной базы не смог принять файл обмена с сообщением "не недостаточно памяти". После него программа вылетала.

Помогло ограничение на количество объектов в транзакции (я поставил 100)

Опубликовано в

Потребовалось настроить выгрузку из 1С:УНФ в 1С:Бухгалтерия 3.0

Базовая настройка простая и не вызывает сложностей, подробно про нее можно почитать, например, здесь.

Но далее возникли проблемы:

1) Запуск регламентного задания обмена на файловой базе.

Регламентные задачи на SQL-базах работают на стороне SQL-сервера и не вызывают проблем, на файловых базах они, конечно, тоже, теоретически, должны работать, если запущен хотя бы один сеанс, но по факту то работали то нет.

В связи с этим, было решено вызывать обмен вручную с помощью внешней обработки и планировщика задач.

Вручную из обработки обмен можно вызвать командой:

ОбменДаннымиСервер.ВыполнитьОбменДаннымиПоРегламентномуЗаданию("00001"); //где 00001 год регламентного задания в справочнике "Сценарии синхронизации данных"



2) Исключить документы из обмена.

Поскольку в УНФ приходы от клиентов на расчетный счет и оплаты поставщикам ведутся вручную, а в бухгалтерии используется обработка "обмен с клиент-банком", то нужно было исключить выгрузку эти операций введенных вручную в бухгалтерскую программу.
Список документов в обмене определен правилами обмена и настройками не меняется, нужно было бы исправлять сами правила обмена и исключать документы. Но есть более простой способ. Тем более, поскольку мы вызываем обмен обработкой, в той же обработке перед вызовом обмена, отменяем регистрацию изменений по нужным нам типам документов, в частности ПоступлениеНаСчет и РасходСоСчета.

//отменяем отправку поступлений на счет
Док = Метаданные.Документы.ПоступлениеНаСчет;
Узел = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("МойОбмен");
ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Док);
//отменяем отправку расходов со счета
Док = Метаданные.Документы.РасходСоСчета;
Узел = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("МойОбмен");
ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Док);

Ниже приложена рабочая обработка, можете скачать и использовать.

 

Опубликовано в

Периодически в отчетах выскакивает ошибка: "Поле объекта недоступно для записи" ПараметрДатаНачала.


Для ее решения в общих формах Отчет_Тонкий_Клиент - в модуле формы в начале процедуры ОбновитьДанныеФормы добавить следующий код:

    Если Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы.Количество() = 0 Тогда
        Попытка
            ИнициализироватьСКД();
        Исключение
        КонецПопытки;
    КонецЕсли;
Опубликовано в