|
Форма документа открывается пустой | ☑ | ||
---|---|---|---|---|
0
Klesk666
19.02.16
✎
09:57
|
Хочу открыть форму заполненного но не записанного документа, что не так?
&НаКлиенте Процедура СоздатьУстановкуЦен(ДокументОприходывания) Форма = ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.ФормаОбъекта"); ДанныеФормы = Форма.Объект; ЗаполнитьДокументНаСервере(ДанныеФормы,ДокументОприходывания); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервереБезКонтекста Процедура ЗаполнитьДокументНаСервере(ДанныеФормы,ДокументОприходывания) ТекОбъект= ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.УстановкаЦенНоменклатуры")); ТекОбъект.ДокументОснование=ДокументОприходывания; ЗапросВидыЦен=Новый Запрос("ВЫБРАТЬ | ВидыЦен.Ссылка КАК ВидЦены |ИЗ | Справочник.ВидыЦен КАК ВидыЦен |ГДЕ | ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании | И НЕ ВидыЦен.ПометкаУдаления | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВидыЦен.Ссылка |ИЗ | Справочник.ВидыЦен КАК ВидыЦен |ГДЕ | ВидыЦен.ВлияющиеВидыЦен.ВлияющийВидЦен.УстанавливатьЦенуПриВводеНаОсновании | И НЕ ВидыЦен.ПометкаУдаления"); ТекОбъект.ВидыЦен.Загрузить(ЗапросВидыЦен.Выполнить().Выгрузить()); ТаблицаТовары=ДокументОприходывания.Товары.Выгрузить(); ТекОбъект.Товары.Загрузить(ТаблицаТовары); ТекОбъект.Ответственный=Пользователи.ТекущийПользователь(); ТекОбъект.Дата=ТекущаяДата(); ЗначениеВДанныеФормы(ТекОбъект,ДанныеФормы); КонецПроцедуры |
|||
1
Klesk666
19.02.16
✎
16:09
|
хелп ми
|
|||
2
mikecool
19.02.16
✎
16:16
|
почему безконтекста?
|
|||
3
Klesk666
19.02.16
✎
18:05
|
(2) делал по примеру http://catalog.mista.ru/public/118784/
, поменял НаСервере ничего не изменилось, документ пустой, хотя в отладчике и ДанныеФормы и Форма.Объект заполнены |
|||
4
Ma3eIIa
19.02.16
✎
19:03
|
не вижу создать объект
|
|||
5
Klesk666
19.02.16
✎
19:20
|
в публикации тоже нет "Создать объект"
|
|||
6
Ma3eIIa
19.02.16
✎
19:24
|
||||
7
Klesk666
19.02.16
✎
19:25
|
(6) там написано ИЛИ
кроме того так тоже не получилось |
|||
8
Ma3eIIa
19.02.16
✎
19:31
|
(7) у меня пример работает. и слова ИЛИ там нет.
|
|||
9
Klesk666
20.02.16
✎
08:30
|
Спасибо, все получилось, может кому пригодится:
&НаКлиенте Процедура СоздатьУстановкуЦен(ДокументОприходывания) Форма = ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.ФормаОбъекта"); ДанныеФормы = Форма.Объект; ЗаполнитьДокументНаСервере(ДанныеФормы,ДокументОприходывания); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.ЗаполнитьДокумент(); Форма.ПостроитьДеревоЦен(); Форма.ЗагрузитьТабличнуюЧастьТовары(); Форма.Элементы.НомерВПределахДня.Видимость=Истина; ПараметрыРассчета=Новый Структура; ВидыЦен=Новый Массив; Для Каждого ВидЦены Из Форма.Объект.ВидыЦен Цикл Если Не ЦенаЗадаетсяВручную(ВидЦены.ВидЦены) Тогда ВидыЦен.Добавить(ВидЦены.ВидЦены); КонецЕсли; КонецЦикла; Форма.Элементы.Основание.Видимость=Истина; ПараметрыРассчета.Вставить("ВидыЦен", ВидыЦен); ПараметрыРассчета.Вставить("ТолькоВыделенныеСтроки",Ложь); ПараметрыРассчета.Вставить("ЗагрузкаСтарыхЦен",Ложь); ПараметрыРассчета.Вставить("ОкруглениеРучныхЦен",Ложь); ПараметрыРассчета.Вставить("ТолькоНезаполненные",Ложь); Форма.РассчитатьЦены(ПараметрыРассчета); Форма.Открыть(); КонецПроцедуры &НаСервере Процедура ЗаполнитьДокументНаСервере(ДанныеФормы,ДокументОприходывания) ТекОбъект=Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); ТекОбъект.ДокументОснование=ДокументОприходывания; ЗапросВидыЦен=Новый Запрос("ВЫБРАТЬ | ВидыЦен.Ссылка КАК ВидЦены |ИЗ | Справочник.ВидыЦен КАК ВидыЦен |ГДЕ | ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании | И НЕ ВидыЦен.ПометкаУдаления | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВидыЦен.Ссылка |ИЗ | Справочник.ВидыЦен КАК ВидыЦен |ГДЕ | ВидыЦен.ВлияющиеВидыЦен.ВлияющийВидЦен.УстанавливатьЦенуПриВводеНаОсновании | И НЕ ВидыЦен.ПометкаУдаления"); ВидыЦен=ЗапросВидыЦен.Выполнить().Выгрузить(); ТекОбъект.ВидыЦен.Загрузить(ВидыЦен); ТаблицаТовары=ДокументОприходывания.Товары.Выгрузить(); Для Каждого Товар Из ТаблицаТовары Цикл Для Каждого ВидЦены Из ВидыЦен Цикл СтрокаТовар=ТекОбъект.Товары.Добавить(); СтрокаТовар.ВидЦены=ВидЦены.ВидЦены; СтрокаТовар.Номенклатура=Товар.Номенклатура; СтрокаТовар.Цена=Товар.Цена; ВидЦены=Справочники.ВидыЦен.СоздатьЭлемент(); СтрокаТовар.ЦенаИзмененаВручную=?(ВидЦены.СпособЗаданияЦены=Перечисления.СпособыЗаданияЦен.Вручную,Истина,Ложь); КонецЦикла; КонецЦикла; ТекОбъект.Ответственный=Пользователи.ТекущийПользователь(); ТекОбъект.Дата=ТекущаяДата(); ЗначениеВДанныеФормы(ТекОбъект,ДанныеФормы); КонецПроцедуры |
|||
10
Klesk666
20.02.16
✎
09:38
|
Еще добавить:
В первую процедуру, чтобы номер в пределах дня был правильным: Форма.Объект.Дата=НачалоДня(Форма.Объект.Дата) + Форма.НомерВПределахДня - 1; Во вторую, чтобы были движения: ТекОбъект.Статус=Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; ТекОбъект.Согласован=Истина; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |