Имя: Пароль:
1C
1С v8
Передать значение с сервера на (внезапно) сервер!
,
0 H A D G E H O G s
 
23.11.11
16:02
День добрый.
Собственно, передать (сохранить) значение между серверными вызовами.
Преамбула:

В ОбработкеЗаполнения(на сервере) заполняю документ и теперь надо сделать так, чтобы в ПриСозданииНаСервере() он не перезаполнялся.

Кроме как в ПараметрахСеанса придумать ничего не смог.
1 Stepa86
 
23.11.11
16:05
Ну как самый крайний случай через кэш ссылку на соответствие протащить, и в этом соответствии документ.

И чот мне кажется, что в постановке задачи косяк, а не в реализации. Почему документ в двух местах заполняется? Да и при создании в форме списка (при открытии формы нового) он все равно в обработку заполнения лезет
2 vde69
 
23.11.11
16:07
дополнительные свойства объекта зачем придуманы?
3 Stepa86
 
23.11.11
16:08
(2) они почиститься успевают
4 H A D G E H O G s
 
23.11.11
16:09
(1)<<Да и при создании в форме списка (при открытии формы нового) он все равно в обработку заполнения лезет>>

Ну я не совсем дятелъ же. Контролирую.

<<И чот мне кажется, что в постановке задачи косяк, а не в реализации. >>

Именно что кажется. Дописал заполнение Реализации по Поступлению в УТ11, а там типовое заполнение в ПриСозданииНаСервере, при пустой Объект.Ссылка. Все норм.

(2) ТонкийКлиент, у ДанныеФормыСтруктура нет ДополнительныеСвойства.
5 Stepa86
 
23.11.11
16:09
+(3) судя по (0), от реализации зависит
6 vde69
 
23.11.11
16:10
(4) я говорю про ОБЪЕКТ тоесть про ДокументОбъект
7 Maxus43
 
23.11.11
16:11
поидее ДопСвойства живут столько сколько сам объект, т.е. чистится не должно
8 Maxus43
 
23.11.11
16:12
ПриСозданииНаСервере() - там доступен объект. при чем тут данные формы?
9 H A D G E H O G s
 
23.11.11
16:13
(6) В ПриСозданииНаСервере нет ДокументОбъект, если его получу из ДанныеФормыСтруктура, там ДопСвойства будут пусты.
10 Maxus43
 
23.11.11
16:14
а, ну раз не доступен...
ВременноеХранилище юзать не пробовал?
11 H A D G E H O G s
 
23.11.11
16:15
(10) Куда адрес хранить?
12 Stepa86
 
23.11.11
16:16
(4) Раз это ввод на основании по поступлению, то поступление надо где то сохранить на реализации (не увидел реквизита Основание, вроде раньше было везде) и по нему можно определить, было заполнение или нет...

зы не уверен, что правильно тебя понял
13 vde69
 
23.11.11
16:16
покажи как обработка заполняет документ
14 H A D G E H O G s
 
23.11.11
16:18
Процедура ЗаполнитьРеализациюПоПоступлению(Источник, ДанныеЗаполнения)
   ДокументОснование=ДанныеЗаполнения;
   Запрос = Новый Запрос;
   Запрос.Текст=
       "ВЫБРАТЬ
       |    ПоступлениеТоваровУслуг.Ссылка КАК ДокументПоступления,
       |    ПоступлениеТоваровУслуг.Партнер КАК Партнер,
       |    ПоступлениеТоваровУслуг.Контрагент КАК Контрагент,
       |    ПоступлениеТоваровУслуг.Договор КАК Договор,
       |    ПоступлениеТоваровУслуг.Соглашение КАК Соглашение,
       |    ПоступлениеТоваровУслуг.Организация КАК Организация,
       |    ПоступлениеТоваровУслуг.БанковскийСчетОрганизации КАК БанковскийСчетОрганизации,
       |    ПоступлениеТоваровУслуг.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
       |    ПоступлениеТоваровУслуг.Грузоотправитель КАК Грузоотправитель,
       |    ПоступлениеТоваровУслуг.БанковскийСчетГрузоотправителя КАК БанковскийСчетГрузоотправителя,
       |    ПоступлениеТоваровУслуг.Подразделение КАК Подразделение,
       |    ПоступлениеТоваровУслуг.Сделка КАК Сделка,
       |    ВЫБОР
       |        КОГДА ПоступлениеТоваровУслуг.Склад.ЭтоГруппа
       |            ТОГДА ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
       |        ИНАЧЕ ПоступлениеТоваровУслуг.Склад
       |    КОНЕЦ КАК Склад,
       |    ПоступлениеТоваровУслуг.Валюта КАК Валюта,
       |    ПоступлениеТоваровУслуг.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
       |    ПоступлениеТоваровУслуг.СуммаДокумента КАК СуммаДокумента,
       |    ПоступлениеТоваровУслуг.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
       |    ПоступлениеТоваровУслуг.Менеджер КАК Менеджер,
       |    ПоступлениеТоваровУслуг.ЗаказПоставщику КАК ЗаказПоставщику,
       |    ПоступлениеТоваровУслуг.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
       |    ПоступлениеТоваровУслуг.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
       |    ПоступлениеТоваровУслуг.НалогообложениеНДС КАК НалогообложениеНДС,
       |    ПоступлениеТоваровУслуг.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
       |    (НЕ ПоступлениеТоваровУслуг.Проведен) КАК ЕстьОшибкиПроведен,
       |    ПоступлениеТоваровУслуг.Товары.(
       |        НоменклатураПоставщика КАК НоменклатураПоставщика,
       |        Номенклатура КАК Номенклатура,
       |        Номенклатура.ВидНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
       |        Характеристика КАК Характеристика,
       |        Упаковка КАК Упаковка,
       |        КоличествоУпаковок КАК КоличествоУпаковок,
       |        Количество КАК Количество,
       |        ВЫБОР
       |            КОГДА ПоступлениеТоваровУслуг.Товары.СуммаРучнойСкидки = 0
       |                    ИЛИ ПоступлениеТоваровУслуг.Товары.КоличествоУпаковок = 0
       |                ТОГДА ПоступлениеТоваровУслуг.Товары.Цена
       |            ИНАЧЕ ПоступлениеТоваровУслуг.Товары.Сумма / ПоступлениеТоваровУслуг.Товары.КоличествоУпаковок
       |        КОНЕЦ КАК Цена,
       |        ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
       |        СуммаРучнойСкидки КАК СуммаРучнойСкидки,
       |        Сумма КАК Сумма,
       |        СтавкаНДС КАК СтавкаНДС,
       |        СуммаНДС КАК СуммаНДС,
       |        СуммаСНДС КАК СуммаСНДС,
       |        СтатьяРасходов КАК СтатьяРасходов,
       |        СтатусУказанияСерий
       |    ) КАК Товары,
       |    ПоступлениеТоваровУслуг.Серии.(
       |        Номенклатура КАК Номенклатура,
       |        Характеристика КАК Характеристика,
       |        Серия КАК Серия,
       |        Количество КАК Количество
       |    ) КАК Серии
       |ИЗ
       |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
       |ГДЕ
       |    ПоступлениеТоваровУслуг.Ссылка = &ДокументОснование";
   
   Запрос.УстановитьПараметр("ДокументОснование", ДокументОснование);
   Результат = Запрос.Выполнить();
   ВыборкаШапка = Результат.Выбрать();
   ВыборкаШапка.Следующий();
   ОбщегоНазначенияУТ.ПроверитьВозможностьВводаНаОсновании(ДокументОснование,,ВыборкаШапка.ЕстьОшибкиПроведен,);
   ЗаполнитьЗначенияСвойств(Источник, ВыборкаШапка);
   ТаблицаТоваров = ВыборкаШапка.Товары.Выгрузить();
   Для Каждого ТекСтрока Из ТаблицаТоваров Цикл
       Если ТекСтрока.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар Тогда
           НоваяСтрока = Источник.Товары.Добавить();
           ЗаполнитьЗначенияСвойств(НоваяСтрока,ТекСтрока);
       КонецЕсли;
   КонецЦикла;
   Источник.Серии.Загрузить(ВыборкаШапка.Серии.Выгрузить());
   ПараметрыУказанияСерий = Документы.РеализацияТоваровУслуг.ПараметрыУказанияСерий(Источник);
   ОбработкаТабличнойЧастиСервер.ЗаполнитьСерииПоFEFO(Источник,ПараметрыУказанияСерий, Ложь);
   
   Источник.Основание = Документы.РеализацияТоваровУслуг.ПолучитьТекстОснованияДляПечати(Источник);
   Источник.ДополнительныеСвойства.Вставить("НеЗаполнятьСтатусыСерий");
КонецПроцедуры

Процедура алкЗаполнениеДокументовОбработкаЗаполнения(Источник, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт
   Если ТипЗнч(ДанныеЗаполнения)=Тип("ДокументСсылка.ПоступлениеТоваровУслуг") И ТипЗнч(Источник.Ссылка)=Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
       ЗаполнитьРеализациюПоПоступлению(Источник, ДанныеЗаполнения);
   КонецЕсли;
   
КонецПроцедуры
15 Maxus43
 
23.11.11
16:18
(11) очевидным напрашивается реквизит, но тогда бы и сабжа не было... Переменные модуля объекта/менеджера с формы недоступны?
16 H A D G E H O G s
 
23.11.11
16:22
(15) нет
17 H A D G E H O G s
 
23.11.11
16:23
Заведу ка я тупо параметрсеанса.
АдресВременныхХранилищ для всяких разных случаев и не буду париться.
18 Jaffar
 
23.11.11
16:26
а тупо регистр сведений Пользователь/Документ/Блокировка? или пользователь тоже не обязательно один и тот же?
19 Maxus43
 
23.11.11
16:26
(18) тогда б сабжа не было. сущности плодить не хочет
20 H A D G E H O G s
 
23.11.11
16:28
Можно еще ХранилищеОбщихНастроек - но это запись в базу.
(19) Автор вообще хочет минимум изменений типовой. Подписки, отдельные модули, и.т.д.
21 Maxus43
 
23.11.11
16:29
(20) Есть ещё Общие реквизиты тогда с 8.2.14
22 acsent
 
23.11.11
16:29
А в событии при чтении вроде есть текущийобъект
23 H A D G E H O G s
 
23.11.11
16:30
(22) Точно! Спасибо!
24 vde69
 
23.11.11
16:31
(14) дополнительныеСвойства должны быть доступны, по сколько ты ВРОДЕ работаешь с одной копией объекта
25 H A D G E H O G s
 
23.11.11
16:34
(24) РеквизитФормвВЗначение() создает новый экземпляр объекта.
26 Maxus43
 
23.11.11
16:36
(24) вспомнил книжку разработка управляемого интерфейса... там на рисунках было показано уничтожение объекта на сервере
27 acsent
 
23.11.11
16:38
(23) Теперь я понял для чего нужно это событие ))
28 Maxus43
 
23.11.11
16:39
(26) + а может и нет. надо перечитать!
29 Fragster
 
гуру
23.11.11
16:43
ДополнительныеСвойтсва были?
30 H A D G E H O G s
 
23.11.11
16:45
(29) Они уже утерли слезы и курят в сторонке.
31 vde69
 
23.11.11
17:05
попробуй тупо

Объект.дополнительныеСвойства
или
ЭтотОбъект.дополнительныеСвойства
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс