В стандартной конфигурации есть врозможность подключения внешнего отчета, этот отчет затягивается в хранилищеЧтобы подключить внешний отчет:
1)Сервис->Внешние печатные формыДобавить внешнюю печатную форму, перенести ее в хранилище, нажав на папку со стрелкойДобавить в табличную часть документ, в кнопку "Печать" которой надо добавить эту печатную форму
2) Механизм печати такой: после нажатия на кнопку "Печать" в документе, в реквизит <СсылкаНаОбъект> отчета передается ссылка на текущий документ и затем запускаетсяПроцедура <Печать > из модуля обработки Требования ко внешнему отчету (обработке) :1) Должен быть реквизит <СсылкаНаОбъект>, тип которого совпадает с типом документа, из которого вызывается этот отчет
3)Сам вывод печатной формы должен вызываться из процедуры, расположенной в модуле обработки (НЕ В МОДУЛЕ ФОРМЫ!!!)Процедура Печать() Экспорт ...КонецПроцедуры
4)Рекомендуется создать форму, из которой м.будет тестировать обработку. Эта форма должна содержать поле выбора документа (реквизит <СсылкаНаОбъект>) И по нажатию на кнопку д. вызываться процедура Печать()
вторник, 5 августа 2008 г.
8.1 8.0 Как в запросе и использовать субконто заданного вида
// Для обычного запроса"ВЫБРАТЬ
ХозрасчетныйОстатки.Счет,
ХозрасчетныйОстатки.КоличествоОстаток,
ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения Как ЕдИзм, Выразить (ХозрасчетныйОстатки.Субконто1 КАК Справочник.Номенклатура) Как Субконто1,...
//Касается построителя отчета
{ГДЕ Выразить (ХозрасчетныйОстатки.Субконто1 КАК Справочник.Номенклатура).* КАК Субконто1,
Выразить (ХозрасчетныйОстатки.Субконто2 КАК Справочник.Организации).* КАК Субконто2,
ХозрасчетныйОстатки.Субконто1.СРШ_ГруппаНоменклатуры.*,
ХозрасчетныйОстатки.Организация.*}
//если в секции построителя запроса об этом не позаботиться, то будет выводится кнопка для выбора типа
ХозрасчетныйОстатки.Счет,
ХозрасчетныйОстатки.КоличествоОстаток,
ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения Как ЕдИзм, Выразить (ХозрасчетныйОстатки.Субконто1 КАК Справочник.Номенклатура) Как Субконто1,...
//Касается построителя отчета
{ГДЕ Выразить (ХозрасчетныйОстатки.Субконто1 КАК Справочник.Номенклатура).* КАК Субконто1,
Выразить (ХозрасчетныйОстатки.Субконто2 КАК Справочник.Организации).* КАК Субконто2,
ХозрасчетныйОстатки.Субконто1.СРШ_ГруппаНоменклатуры.*,
ХозрасчетныйОстатки.Организация.*}
//если в секции построителя запроса об этом не позаботиться, то будет выводится кнопка для выбора типа
8.1 как работать со списком выбора в форме
Запись и проведение документов в 7.7
Нужно обрабатывать ошибку, чтобы исключить проблемы, связанные с возможностью захвата таблицы в 7.7
докСторно = Сторно.Новый();
докСторно.НомерДок = СокрЛП(докКорректировка81.Номер);
докСторно.ДатаДок = докКорректировка81.Дата; докСторно.СторнируемыйДокумент = докОказаниеУслуг;
докСторно.Комментарий = "Сформирован из ИБ 8.1";
Попытка
докСторно.Записать();
докСторно.Провести();
Сообщить("Создан и проведен документ " + докСторно);
Исключение
Сообщить(Строка(докСторно)+ " " + ОписаниеОшибки());
КонецПопытки;
докСторно = Сторно.Новый();
докСторно.НомерДок = СокрЛП(докКорректировка81.Номер);
докСторно.ДатаДок = докКорректировка81.Дата; докСторно.СторнируемыйДокумент = докОказаниеУслуг;
докСторно.Комментарий = "Сформирован из ИБ 8.1";
Попытка
докСторно.Записать();
докСторно.Провести();
Сообщить("Создан и проведен документ " + докСторно);
Исключение
Сообщить(Строка(докСторно)+ " " + ОписаниеОшибки());
КонецПопытки;
Как из 1С 7.7. подключиться по OLE к 1С 8.1
В 1С 7.7.
//Подключает ИБ
Процедура ПодключитьИБ()
Если НастройкиПодключенияКорректны() = 0 Тогда
возврат;
КонецЕсли; //
НовыйПодключенныйОбъект = СоздатьОбъект("V81.COMConnector"); v8 = НовыйПодключенныйОбъект.Connect("Srvr=" + Srvr + ";Ref=" + Ref + ";Usr=" + Usr + ";Pwd=" + Pwd + ";");
Если v8=0 Тогда
Сообщить("Ошибка открытия базы!", "!");
СтатусВозврата(0); Иначе
Сообщить("База удачно подключена");
КонецЕсли;
КонецПроцедуры
В 1С 8.1
Удобно работать через модуль внешнего соединения. В модуле внешнего соединения создаются процедуры и функции для "общения" с 8.1, а из 7.7. вызываются
Например:
(внешнее соединение 8.1)
//Возвращает выборку документов за период
//Используется при загрузке данных в 1С Бухгалтерию 7.7
Функция ВернутьВыборку(ИмяДокумента, ДатаНач, ДатаКон, ИНН_КПП, ОснованиеКорректировки = Неопределено) Экспорт
Запрос = Новый Запрос;
ТекстЗапроса = "ВЫБРАТЬ Организации.Ссылка Как Организация ИЗ Справочник.Организации КАК Организации ГДЕ Организации.ИНН_КПП = &ИНН_КПП" ; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("ИНН_КПП", СокрЛП(ИНН_КПП)); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Количество()=0 Тогда Возврат Выборка;//возвращаем пустую выборку, так как не можем идентифицировать организацию КонецЕсли; Если Выборка.Следующий() Тогда мОрганизация = Выборка.Организация; КонецЕсли; Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ Док.Ссылка Как {ИмяДокумента} ИЗ Документ.{ИмяДокумента} КАК Док ГДЕ Док.Организация = &Организация И Док.Дата МЕЖДУ &Дата1 И &Дата2" + ?(ИмяДокумента = "Реализация"," И Док.Упр = Ложь","") + //отбираем документы Реализация, для которых не установлен реквизит Упр; ?(ИмяДокумента = "Корректировка",?(ЗначениеЗаполнено(ОснованиеКорректировки),"ОснованиеКорректировки = &ОснованиеКорректировки","")"");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"{ИмяДокумента}",СокрЛП(ИмяДокумента));
Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("Дата1", НачалоДня(ДатаНач));
Запрос.УстановитьПараметр("Дата2", КонецДня (ДатаКон));
Запрос.УстановитьПараметр("Организация", мОрганизация); Выборка =
Запрос.Выполнить().Выбрать();
Возврат Выборка;
КонецФункции
В 7.7. обращаемся так:
//**********************************************
ПодготовитьДанныеДляСозданияДокОказаниеУслуг()
Выборка_81 = v8.ВернутьВыборку("Реализация", ДатаНач, ДатаКон,ИНН);
Пока Выборка_81.Следующий() = -1 Цикл
докРеализация_81 = Выборка_81.Реализация; //текущий документ Реализация
Сообщить("Смотрю реализацию:" + Строка(докРеализация_81.Номер) + "....Всего в выборке: " + Строка(Выборка_81.Количество()) + " реализаций" );
СоздатьДокОказаниеУслуг(докРеализация_81);
КонецЦикла;
КонецПроцедуры
//Подключает ИБ
Процедура ПодключитьИБ()
Если НастройкиПодключенияКорректны() = 0 Тогда
возврат;
КонецЕсли; //
НовыйПодключенныйОбъект = СоздатьОбъект("V81.COMConnector"); v8 = НовыйПодключенныйОбъект.Connect("Srvr=" + Srvr + ";Ref=" + Ref + ";Usr=" + Usr + ";Pwd=" + Pwd + ";");
Если v8=0 Тогда
Сообщить("Ошибка открытия базы!", "!");
СтатусВозврата(0); Иначе
Сообщить("База удачно подключена");
КонецЕсли;
КонецПроцедуры
В 1С 8.1
Удобно работать через модуль внешнего соединения. В модуле внешнего соединения создаются процедуры и функции для "общения" с 8.1, а из 7.7. вызываются
Например:
(внешнее соединение 8.1)
//Возвращает выборку документов за период
//Используется при загрузке данных в 1С Бухгалтерию 7.7
Функция ВернутьВыборку(ИмяДокумента, ДатаНач, ДатаКон, ИНН_КПП, ОснованиеКорректировки = Неопределено) Экспорт
Запрос = Новый Запрос;
ТекстЗапроса = "ВЫБРАТЬ Организации.Ссылка Как Организация ИЗ Справочник.Организации КАК Организации ГДЕ Организации.ИНН_КПП = &ИНН_КПП" ; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("ИНН_КПП", СокрЛП(ИНН_КПП)); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Количество()=0 Тогда Возврат Выборка;//возвращаем пустую выборку, так как не можем идентифицировать организацию КонецЕсли; Если Выборка.Следующий() Тогда мОрганизация = Выборка.Организация; КонецЕсли; Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ Док.Ссылка Как {ИмяДокумента} ИЗ Документ.{ИмяДокумента} КАК Док ГДЕ Док.Организация = &Организация И Док.Дата МЕЖДУ &Дата1 И &Дата2" + ?(ИмяДокумента = "Реализация"," И Док.Упр = Ложь","") + //отбираем документы Реализация, для которых не установлен реквизит Упр; ?(ИмяДокумента = "Корректировка",?(ЗначениеЗаполнено(ОснованиеКорректировки),"ОснованиеКорректировки = &ОснованиеКорректировки","")"");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"{ИмяДокумента}",СокрЛП(ИмяДокумента));
Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("Дата1", НачалоДня(ДатаНач));
Запрос.УстановитьПараметр("Дата2", КонецДня (ДатаКон));
Запрос.УстановитьПараметр("Организация", мОрганизация); Выборка =
Запрос.Выполнить().Выбрать();
Возврат Выборка;
КонецФункции
В 7.7. обращаемся так:
//**********************************************
ПодготовитьДанныеДляСозданияДокОказаниеУслуг()
Выборка_81 = v8.ВернутьВыборку("Реализация", ДатаНач, ДатаКон,ИНН);
Пока Выборка_81.Следующий() = -1 Цикл
докРеализация_81 = Выборка_81.Реализация; //текущий документ Реализация
Сообщить("Смотрю реализацию:" + Строка(докРеализация_81.Номер) + "....Всего в выборке: " + Строка(Выборка_81.Количество()) + " реализаций" );
СоздатьДокОказаниеУслуг(докРеализация_81);
КонецЦикла;
КонецПроцедуры
Подписаться на:
Сообщения (Atom)