|   |   | 
| 
 | Вернуть значение переменной в параметр процедуры | ☑ | ||
|---|---|---|---|---|
| 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) работает как ты сказал ! Спасибо ! 
  Я просто хотел Успех сделать необязательным параметром в СоздатьДокументРеализацияВоВнешнейБухБазе(ДокСсылка, ВнешняяБаза, Успех). Но наверно при таком варианте туда ничего не вернется. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |