Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как вывести в Поле формы документа Дату Реализации товаров и услуг?          
Vzonder Подменю пользователя
сообщение 20.01.17, 17:57
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 38
Спасибо сказали: 1 раз
Рейтинг: 0

1С 8.2 УТ 10.3
Имеется форма документа (ЗаказПокупателя)
В нее необходимо вывести Номер и дату реализации ( в поле ПолеРеализацияТоваровУслуг и ПолеДатаРеализации соответственно).

Не нашел реквизитов Номер и Дата у документа реализация, поэтому решил выводить запросом.
Например запрос Номера:

Процедура ОтборРеализация()

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.Номер
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        |ГДЕ
        |    РеализацияТоваровУслуг.Номер = &Номер";
    
    Запрос.УстановитьПараметр("Номер", Номер);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        
        ЭлементыФормы.ПолеРеализацияТоваровУслуг.Значение = ВыборкаДетальныеЗаписи.Номер
        
    КонецЦикла;
    
КонецПроцедуры

И тут столкнулся с проблемой.
Если в запросе фигурирует и – или Дата – то в поле ничего не отражается.
Что я делаю не так?
Научите, пожалуйста.

kum12neon Подменю пользователя
сообщение 20.01.17, 23:21
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

Vzonder @ Сегодня, 17:57 * ,
ВАУ...
Батенька, да вам бы не мешало немного подучится. Например Гилева посмотреть (Spec8.ru).

// Получаем ссылку на документ
РеализацияОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(Номер);
// Заганяем ссылку документа на форму
ЭлементыФормы.ПолеРеализацияТоваровУслуг.Значение = РеализацияОбъект;
// Ну и другие элементы документа (кроме табличных - они в цикле)
ЭлементыФормы.ПолеВидОперации.Значение = РеализацияОбъект.ВидОперации;
ЭлементыФормы.ПолеГрузополучатель.Значение = РеализацияОбъект.Грузополучатель;

и т.д.

Кстати - и "Номер" и "Дата" являются встроенными реквизитами и они дополнительно не добавляются, они там есть изначально во всех объектах.

Vzonder Подменю пользователя
сообщение 22.01.17, 15:14
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 38
Спасибо сказали: 1 раз
Рейтинг: 0

kum12neon @ Вчера, 0:21 * ,

Огромное пасибо.

Все получилось.
Реализовал так:
Процедура ОтборРеализация()    

    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.Номер
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        |ГДЕ
        |    РеализацияТоваровУслуг.Номер = &Номер";
    
    Запрос.УстановитьПараметр("Номер", Номер);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл              
        НомерДок = ВыборкаДетальныеЗаписи.Номер                 
    КонецЦикла;    
    
         ДатаРеализ = Дата;              
    
    РеализацияОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, ДатаРеализ);
    РеквизитПолеРеализацияТоваровУслуг = РеализацияОбъект;
    ЭлементыФормы.ПолеДатаРеализации.Значение = РеализацияОбъект.Дата;
    

КонецПроцедуры


Процедура Кнопка1Нажатие(Элемент)
    
         ДатаРеализ = Дата;
        
      РеализацияОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, ДатаРеализ);
             Если НЕ РеализацияОбъект.Пустая() Тогда
     РеализацияОбъект.ПолучитьОбъект().ПолучитьФорму("ФормаДокумента_AnytosЛогистикаПечать").Открыть();

КонецЕсли;
    
КонецПроцедуры


Посмотрите, пожалуйста, учитывая мой нулевой уровень, предполагаю, что мог криво написать.


Идея такая, если в полях корректно отражается номер реализации, то нажатием кнопки, вызывается форма документа РеализацияТоваровУслуг ФормаДокумента_AnytosЛогистикаПечат (специально облегченныя).
В форме ФормаДокумента_AnytosЛогистикаПечать в процедуре ПриОткрытии
    Дата = ТекущаяДата();
    Записать();
    УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта(ЭтотОбъект, ЭтаФорма);
    Закрыть();

Т.е. меняется Дата реализации на текущую и Выводится форма выбора печатных форм.






logist Подменю пользователя
сообщение 26.01.17, 19:44
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Не понимаю, зачем вы запросом (или по другому) получаете реализацию, если уже знаете ее номер. Кстати это неправильный подход, т.к. если у вас нумерация в пределах года (или другой периодичности), то толку от поиска по номеру.
Логично запросом искать реализацию по ссылке через документ основание, тогда будет найдена точно нужная реализация.
Запрос = Новый Запрос("ВЫБРАТЬ
|    РеализацияТоваровУслуг.Номер,
|    РеализацияТоваровУслуг.Дата
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
|    РеализацияТоваровУслуг.Сделка = &Сделка");
Запрос.УстановитьПараметр("Сделка", СсылкаНаЗаказ);
Результат = Запрос.Выполнить().Выгрузить()[0];

ЗдесьБудетДата = Результат.Дата;
ЗдесьБудеНомер = Результат.Номер;

А судя по последнему посту вообще не понятно накой получать номер и дату реализации если надо открыть ее форму. Достаточно будет сделать так:
Запрос = Новый Запрос("ВЫБРАТЬ
                      |    РеализацияТоваровУслуг.Ссылка
                      |ИЗ
                      |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                      |ГДЕ
                      |    РеализацияТоваровУслуг.Сделка = &Сделка");
Запрос.УстановитьПараметр("Сделка", СсылкаНаЗаказ);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    ФормаД = Выборка.Ссылка.ПолучитьФорму("ФормаДокумента_AnytosЛогистикаПечать");
    ФормаД.Открыть();
КонецЕсли;


Signature
Личные бесплатные консультации не даю, для этого есть форум!

candrey Подменю пользователя
сообщение 28.02.17, 16:28
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

Полностью согласен с logist .

Запрос тут ненужен. Создаешь реквизит. Накручиваешь простое условие на него и Все)))

Выводишь на форму этот реквизит.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.04.24, 12:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!