Имя: Пароль:
1C
 
Выбор документа на клиенте
0 tabarigen
 
14.05.18
16:07
Ребят, у меня внешняя обработка заполнения таб части документа.
УФ, розница 2.

Код простой:

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


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


При выполнеии кода вываливается ошибка.
{ВнешняяОбработка.ЗаполнениеРТизПТ.Форма.Форма.Форма(21)}: Поле объекта не обнаружено (Товары)
        Для Каждого Стр Из ВыбЗнач.Товары Цикл

так обработка внешняя отладить не могу.
Чсотрел через Сообщить(ТипЗнач(ВыбЗнач)), там Поступление товаров и услуг.
вроде как там ссылка, но как перебать ТЧ выбранного дока ума не приложу.
Хелпуйте парни плиз.
1 Lexey_
 
14.05.18
16:11
(0) на сервере перебирай
2 tabarigen
 
14.05.18
16:13
(1) блин а ты крут черт побери.. ща попробую.
3 tabarigen
 
14.05.18
16:44
(2) Все равно не получается((

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


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

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



Вываливается ошибка
{ВнешняяОбработка.ЗаполнениеРТизПТ.Форма.Форма.Форма(27)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
    ДДД = ДокПродажи.ПолучитьОбъект();
по причине:
Элемент не выбран!
4 Lexey_
 
14.05.18
16:47
(3) не "всё равно", а это уже другая ошибка: Документы.РеализацияТоваров.НайтиПоНомеру(НомерДокРеализации) не находит ничего
5 tabarigen
 
14.05.18
17:14
(4) да все верно..
странно почему док не находится. в процедуру номер вторым параметром верно передается "0000-000155"
6 Lexey_
 
14.05.18
17:16
(5) почитай в СП про НайтиПоНомеру()
7 tabarigen
 
14.05.18
17:17
(6) читаю..
8 tabarigen
 
14.05.18
17:17
(6) ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)
НайтиПоНомеру (FindByNumber)
Синтаксис:

НайтиПоНомеру(<НомерДокумента>, <ДатаИнтервала>)
Параметры:

<НомерДокумента> (обязательный)

Тип: Число; Строка.
Номер искомого документа. Тип передаваемого значения зависит от установки в конфигураторе представления номера документа.
<ДатаИнтервала> (необязательный)

Тип: Дата.
Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
Параметр используется для документов с периодической нумерацией.
Возвращаемое значение:

Тип: ДокументСсылка.<Имя документа>; Неопределено.
Ссылка на найденный документ. Если документ не найден, возвращается пустая ссылка на документ.
Если номер не задан (длина = 0), то будет возвращено Неопределено.
Описание:

Осуществляет поиск документа по номеру.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
9 dezss
 
14.05.18
17:19
(8) сюда запостил, чтоб крупнее шрифт был?)))
ну так теперь смотри на дату дока и на периодичность нумерации
10 Lexey_
 
14.05.18
17:20
(8) ну вот
11 tabarigen
 
14.05.18
17:20
(10) все понял...
передал текущую дату, вторым параметром, док нашелся..
12 tabarigen
 
14.05.18
17:20
(10) спасибо кеп, ты лучший)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.