|   |   | 
| 
 | Форма документа открывается пустой | ☑ | ||
|---|---|---|---|---|
| 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; Во вторую, чтобы были движения: ТекОбъект.Статус=Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; ТекОбъект.Согласован=Истина; | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |