|
Вернуть значение переменной в параметр процедуры | ☑ | ||
---|---|---|---|---|
0
Pro-tone
02.12.11
✎
12:30
|
Не получается вытягивать УспешноСоздан=Истина, хотя в самой процедуре значение Истина
УспешноСоздан = Ложь; ЛогистикаСервер.СоздатьДокументВ1СБухгалтерия(Объект.Ссылка,"РеализацияТоваровУслуг", УспешноСоздан); Если УспешноСоздан Тогда ПоказатьОповещениеПользователя("Выгрузка в ""Бухгалтерия"":",,"Реализация товаров и услуг "+Объект.Номер, БиблиотекаКартинок.Выгрузить); Закрыть(); КонецЕсли; |
|||
1
Cube
02.12.11
✎
12:32
|
Кто мешает из процедуры СоздатьДокументВ1СБухгалтерия сделать функцию и писать так:
УспешноСоздан = ЛогистикаСервер.СоздатьДокументВ1СБухгалтерия(Объект.Ссылка,"РеализацияТоваровУслуг"); ??? |
|||
2
Pro-tone
02.12.11
✎
12:35
|
(1) в 7.7 было такое:
ВыбЗнач=""; Если СписокЗначений(ВыбЗнач,"!!!",,,)=1 Тогда КонецЕсли; Хочу такой же принцип |
|||
3
Pro-tone
02.12.11
✎
12:36
|
(2)
вернее ВыбЗнач=""; Если СписокЗначений.ВыбратьЗначение(ВыбЗнач,"!!!",,,)=1 Тогда КонецЕсли; |
|||
4
Не Печенкин
02.12.11
✎
12:42
|
1. он точно меняется на Истина в самом СоздатьДокументВ1СБухгалтерия?
2. аргумент не помечен как Знач? |
|||
5
Pro-tone
02.12.11
✎
12:56
|
(4)
1. точно 2. не помечен (но я помечал даже и все равно тот же результат) |
|||
6
Reset
02.12.11
✎
13:01
|
(5) Не точно.
код СоздатьДокументВ1СБухгалтерия покажи |
|||
7
Pro-tone
02.12.11
✎
13:27
|
(6)
Процедура СоздатьДокументВ1СБухгалтерия(ДокСсылка,ВидДокументаВнешнейБазы, Успех = Ложь) Экспорт ПодключитьИБ(); ВнешняяБаза = ПолучитьИзВременногоХранилища(ПараметрыСеанса.ВнешняяБаза); //тут создаем документ-объект во внешней базе !!! Если ВидДокументаВнешнейБазы = "РеализацияТоваровУслуг" Тогда СоздатьДокументРеализацияВоВнешнейБухБазе(ДокСсылка, ВнешняяБаза, Успех = Ложь); КонецЕсли; КонецПроцедуры Процедура СоздатьДокументРеализацияВоВнешнейБухБазе(ДокСсылка, ВнешняяБаза, Успех = Ложь) Если НЕ ПустаяСтрока(ДокСсылка.УИ_бухгалтерия) Тогда //документ был выгружен уже ранее, обновим его тогда в бух УИ_ВнешнБух = ВнешняяБаза.NewObject("УникальныйИдентификатор", ДокСсылка.УИ_бухгалтерия); Попытка БухДокументРеализация = ВнешняяБаза.Документы.РеализацияТоваровУслуг.ПолучитьСсылку(УИ_ВнешнБух).ПолучитьОбъект(); Исключение //в редких случаях ссылка генерится неверно, тогда пробуем искать по номеру НайденныйДок = ВнешняяБаза.Документы.РеализацияТоваровУслуг.НайтиПоНомеру(СокрЛП(ДокСсылка.Номер),ДокСсылка.Дата).ПолучитьОбъект(); Если НайденныйДок = Неопределено ИЛИ НайденныйДок.ПометкаУдаления Тогда //ну если уж совсем не получается найти, то просто очищаем наше поле "УИ бух в расходной накладной" //и создаем новый документ тогда уж //ОбщегоНазначенияКлиентСервер.СообщитьПользователю(""); БухДокументРеализация = ВнешняяБаза.Документы.РеализацияТоваровУслуг.СоздатьДокумент(); Иначе БухДокументРеализация = НайденныйДок; КонецЕсли; КонецПопытки; Иначе БухДокументРеализация = ВнешняяБаза.Документы.РеализацияТоваровУслуг.СоздатьДокумент(); КонецЕсли; Если НЕ ЗначениеЗаполнено(ДокСсылка.Контрагент.УИ_1СБух) Тогда //если нет связи элемента в бух, то прерываем все ! ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Контрагент "+ДокСсылка.Контрагент.Наименование+" не связан с 1С:Бухгалтерия! |Выгрузка документа не возможна !"); Возврат; КонецЕсли; //тут заполняем реквизиты шапки! //>>---------ШАПКА !!!!!!! БухДокументРеализация.Дата = ДокСсылка.Дата; БухДокументРеализация.Номер = ДокСсылка.Номер; БухДокументРеализация.Организация = ВнешняяБаза.Справочники.Организации.НайтиПоКоду("000000001"); БухДокументРеализация.Склад = ВнешняяБаза.Справочники.Склады.НайтиПоКоду("000000001"); // Основной склад Если НЕ ЗначениеЗаполнено(ДокСсылка.Контрагент.УИ_1СБух) Тогда //если нет связи элемента в бух, то прерываем все ! ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Контрагент "+ДокСсылка.Контрагент.Наименование+" не связан с 1С:Бухгалтерия! |Выгрузка документа не возможна !"); Возврат; КонецЕсли; УИ_ВнешнСпрКонтрагенты = ВнешняяБаза.NewObject("УникальныйИдентификатор", ДокСсылка.Контрагент.УИ_1СБух); КонтрагентВнеш = ВнешняяБаза.Справочники.Контрагенты.ПолучитьСсылку(УИ_ВнешнСпрКонтрагенты); БухДокументРеализация.Контрагент = КонтрагентВнеш; БухДокументРеализация.ДоговорКонтрагента = КонтрагентВнеш.ОсновнойДоговорКонтрагента; Если ЗначениеЗаполнено(ДокСсылка.Грузоотправитель) Тогда Если НЕ ЗначениеЗаполнено(ДокСсылка.Грузоотправитель.УИ_1СБух) Тогда //если нет связи элемента в бух, то прерываем все ! ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Грузоотправитель "+ДокСсылка.Грузоотправитель.Наименование+" не связан с 1С:Бухгалтерия! |Выгрузка документа не возможна !"); Возврат; КонецЕсли; УИ_ВнешнСпрКонтрагентыГрузоотправитель = ВнешняяБаза.NewObject("УникальныйИдентификатор", ДокСсылка.Грузоотправитель.УИ_1СБух); КонтрагентГрузоотправительВнеш = ВнешняяБаза.Справочники.Контрагенты.ПолучитьСсылку(УИ_ВнешнСпрКонтрагентыГрузоотправитель); БухДокументРеализация.Грузоотправитель = КонтрагентГрузоотправительВнеш; КонецЕсли; Если ЗначениеЗаполнено(ДокСсылка.Грузополучатель) Тогда Если НЕ ЗначениеЗаполнено(ДокСсылка.Грузополучатель.УИ_1СБух) Тогда //если нет связи элемента в бух, то прерываем все ! ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Грузополучатель "+ДокСсылка.Грузополучатель.Наименование+" не связан с 1С:Бухгалтерия! |Выгрузка документа не возможна !"); Возврат; КонецЕсли; УИ_ВнешнСпрКонтрагентыГрузополучатель = ВнешняяБаза.NewObject("УникальныйИдентификатор", ДокСсылка.Грузополучатель.УИ_1СБух); КонтрагентГрузополучательВнеш = ВнешняяБаза.Справочники.Контрагенты.ПолучитьСсылку(УИ_ВнешнСпрКонтрагентыГрузополучатель); БухДокументРеализация.Грузополучатель = КонтрагентГрузополучательВнеш; КонецЕсли; БухДокументРеализация.ВалютаДокумента = ВнешняяБаза.Справочники.Валюты.НайтиПоКоду(ДокСсылка.ВалютаДокумента.Код); БухДокументРеализация.КурсВзаиморасчетов = ДокСсылка.Курс; БухДокументРеализация.КратностьВзаиморасчетов = ДокСсылка.Кратность; БухДокументРеализация.Комментарий = ДокСсылка.Комментарий; БухДокументРеализация.УчитыватьНДС = ?(ДокСсылка.НалогообложениеНДС=Перечисления.ТипыНалогообложенияНДС.ОблагаетсяНДС,Истина,Ложь); БухДокументРеализация.СуммаВключаетНДС = ДокСсылка.СуммаВключаетНДС; //манагер ОтветственныйМенеджер = ПолучитьНастройкуПользователяИБпоСтр("Основной ответственный",ДокСсылка.Автор); БухДокументРеализация.Менеджер = ВнешняяБаза.Справочники.ФизическиеЛица.НайтиПоНаименованию(ОтветственныйМенеджер.Наименование); //манагер //автор - текущий пользователь АвторВнешн = ВнешняяБаза.Справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь.Наименование); БухДокументРеализация.Ответственный = АвторВнешн; //автор //счета БУ СчетБУ = ПолучитьНастройкуПользователяИБ(ПланыВидовХарактеристик.НастройкиПользователей.СчетБУсПокупателями,ДокСсылка.Автор); СчетБУ_Внешн = ВнешняяБаза.ПланыСчетов.Хозрасчетный.НайтиПоКоду(СчетБУ.Код); БухДокументРеализация.СчетУчетаРасчетовСКонтрагентом = СчетБУ_Внешн; СчетБУАвансы = ПолучитьНастройкуПользователяИБ(ПланыВидовХарактеристик.НастройкиПользователей.СчетБУсПокупателямиАвансы,ДокСсылка.Автор); СчетБУАвансы_Внешн = ВнешняяБаза.ПланыСчетов.Хозрасчетный.НайтиПоКоду(СчетБУАвансы.Код); БухДокументРеализация.СчетУчетаРасчетовПоАвансам = СчетБУАвансы_Внешн; //счета БУ //<<---------ШАПКА !!!!!!! НеВыгружать = Ложь; //тут заполняем и табличной части !! //>>---------ТАБЛИЧНАЯ ЧАСТЬ ЗАПАСЫ !!!!!!! БухДокументРеализация.Услуги.Очистить(); Для Каждого ТекСтрока Из ДокСсылка.Запасы Цикл НоваяСтрокаТЧВнешнейБазы = БухДокументРеализация.Услуги.Добавить(); //>>---------НОМЕНКЛАТУРА Если НЕ ЗначениеЗаполнено(ТекСтрока.Номенклатура.УИ_1СБух) Тогда //если нет связи элемента в бух, то прерываем все ! ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Номенклатура "+ДокСсылка.Номенклатура.Наименование+" не связана с 1С:Бухгалтерия! |Выгрузка документа не возможна !"); НеВыгружать = Истина; Прервать; КонецЕсли; УИ_ВнешнСпрНоменклатура = ВнешняяБаза.NewObject("УникальныйИдентификатор", ТекСтрока.Номенклатура.УИ_1СБух); НоменклатураВнеш = ВнешняяБаза.Справочники.Номенклатура.ПолучитьСсылку(УИ_ВнешнСпрНоменклатура); НоваяСтрокаТЧВнешнейБазы.Номенклатура = НоменклатураВнеш; //<<---------НОМЕНКЛАТУРА НоваяСтрокаТЧВнешнейБазы.Количество = ТекСтрока.Количество; НоваяСтрокаТЧВнешнейБазы.Цена = ТекСтрока.Цена; НоваяСтрокаТЧВнешнейБазы.Сумма = ТекСтрока.Сумма; НоваяСтрокаТЧВнешнейБазы.СуммаНДС = ТекСтрока.СуммаНДС; НоваяСтрокаТЧВнешнейБазы.Содержание = ТекСтрока.Содержание; Если БухДокументРеализация.УчитыватьНДС Тогда НоваяСтрокаТЧВнешнейБазы.СтавкаНДС = ПолучитьСтавкуНДСвБух(ТекСтрока.СтавкаНДС, ВнешняяБаза); КонецЕсли; СчетБУДоходы = ПолучитьНастройкуПользователяИБ(ПланыВидовХарактеристик.НастройкиПользователей.СчетБУДоходы,ДокСсылка.Автор); СчетБУДоходы_Внешн = ВнешняяБаза.ПланыСчетов.Хозрасчетный.НайтиПоКоду(СчетБУДоходы.Код); НоваяСтрокаТЧВнешнейБазы.СчетДоходовБУ = СчетБУДоходы_Внешн; //>>---------Субконто БУ Доходы Если ЗначениеЗаполнено(ТекСтрока.СубконтоБУ) И НЕ ЗначениеЗаполнено(ТекСтрока.УИ_СубконтоБУ) Тогда //если нет связи элемента в бух, то прерываем все ! ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Субконто БУ "+ТекСтрока.СубконтоБУ+" не связано с 1С:Бухгалтерия! |Его значение не выгружено ! Установите его в 1С-Бухгалтерия самостоятельно !"); Иначе Если ЗначениеЗаполнено(ТекСтрока.СубконтоБУ) Тогда ВидВидаСправочникаСубконто = ПолучитьСтруктуруВидаСубконто1ВнешейБазы(ТекСтрока.СчетБУДоходы, ВнешняяБаза).Имя; СправочникСсылкаВнешн = ВнешняяБаза.Справочники[ВидВидаСправочникаСубконто]; УИ_ВнешнСпр = ВнешняяБаза.NewObject("УникальныйИдентификатор", ТекСтрока.УИ_СубконтоБУ); НоваяСтрокаТЧВнешнейБазы.СубконтоБУ = СправочникСсылкаВнешн.ПолучитьСсылку(УИ_ВнешнСпр); КонецЕсли; КонецЕсли; //<<---------Субконто БУ Доходы СчетНУреализация = ПолучитьНастройкуПользователяИБ(ПланыВидовХарактеристик.НастройкиПользователей.СчетНУРеализация,ДокСсылка.Автор); СчетНУреализация_Внешн = ВнешняяБаза.ПланыСчетов.Хозрасчетный.НайтиПоКоду(СчетНУреализация.Код); НоваяСтрокаТЧВнешнейБазы.СчетУчетаНДСПоРеализации = СчетНУреализация_Внешн; НоваяСтрокаТЧВнешнейБазы.СчетРасходовБУ = ВнешняяБаза.ПланыСчетов.Хозрасчетный.НайтиПоКоду("ПЗ.90.0"); КонецЦикла; //<<---------ТАБЛИЧНАЯ ЧАСТЬ ЗАПАСЫ !!!!!!! Если НеВыгружать Тогда Возврат; КонецЕсли; Попытка БухДокументРеализация.Записать(ВнешняяБаза.РежимЗаписиДокумента.Проведение); Попытка УИ_БухДокументРеализация = ВнешняяБаза.String(БухДокументРеализация.Ссылка.УникальныйИдентификатор()); //и после проведения ждока во внешней базе тут обновляем наш УИ бух ! оповещение ДокОбъектРасходнаяНакладная = ДокСсылка.ПолучитьОбъект(); ДокОбъектРасходнаяНакладная.УИ_бухгалтерия = УИ_БухДокументРеализация; ДокОбъектРасходнаяНакладная.Записать(РежимЗаписиДокумента.Запись); Успех = Истина; Исключение КонецПопытки; Исключение ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось выгрузить документ !" + ОписаниеОшибки()); КонецПопытки; КонецПроцедуры |
|||
8
Reset
02.12.11
✎
13:35
|
(7) в СоздатьДокументВ1СБухгалтерия параметр Успех не изменяет ни один оператор
|
|||
9
Pro-tone
02.12.11
✎
14:06
|
(8) плохо ты смотрел
Попытка УИ_БухДокументРеализация = ВнешняяБаза.String(БухДокументРеализация.Ссылка.УникальныйИдентификатор()); //и после проведения ждока во внешней базе тут обновляем наш УИ бух ! оповещение ДокОбъектРасходнаяНакладная = ДокСсылка.ПолучитьОбъект(); ДокОбъектРасходнаяНакладная.УИ_бухгалтерия = УИ_БухДокументРеализация; ДокОбъектРасходнаяНакладная.Записать(РежимЗаписиДокумента.Запись); Успех = Истина; Исключение КонецПопытки; |
|||
10
Pro-tone
02.12.11
✎
14:06
|
прям в конец кода смотри
|
|||
11
Reset
02.12.11
✎
14:12
|
(9) Это совершенно другая процедура и переменная Успех - совершенно другая.
Тебе к букварям, читать про операции присваивания и чем они отличаются от оператора сравнения. |
|||
12
Reset
02.12.11
✎
14:13
|
Окей, спишем на пятницу.
"СоздатьДокументРеализацияВоВнешнейБухБазе(ДокСсылка, ВнешняяБаза, Успех = Ложь);" замени на "СоздатьДокументРеализацияВоВнешнейБухБазе(ДокСсылка, ВнешняяБаза, Успех);" |
|||
13
Pro-tone
02.12.11
✎
14:20
|
(12) работает как ты сказал ! Спасибо !
Я просто хотел Успех сделать необязательным параметром в СоздатьДокументРеализацияВоВнешнейБухБазе(ДокСсылка, ВнешняяБаза, Успех). Но наверно при таком варианте туда ничего не вернется. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |