Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 20:00

Как подставить в табл.часть значение реквизита выбранного элемента справочника?

Автор detka_cccp, 21 фев 2012, 11:00

0 Пользователей и 3 гостей просматривают эту тему.

detka_cccp

Цитата: Dethmontt от 02 мар 2012, 02:43
Получить форму списка и открыть ее в процедуре послеЗакрытия() или ПриЗакрытии()
Спасибо конечно, огромное. Но нельзя-ли подробнее?
Я уже пробовал в процедуре ПриЗакрытии вписать открытие формы списка, однако ниче не открывалось, как и ошибку не выдавала тоже.
Что значит получить форму списка?

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

detka_cccp

Процедура ПослеЗаписи()
   Документы.Нарядзаказ.ПолучитьФормуСписка();
КонецПроцедуры

cska-fanat-kz

Получаешь вообще-то в переменную:
ФормаСписка = Документы.Нарядзаказ.ПолучитьФормуСписка();
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

detka_cccp

cska-fanat-kz , посоветуй пожалуйста норм подробное издание по встроенному языку 8.1 , пользую Митичкин, Разработка в системе предприятия 8.0, всякую литру по 8.2 в которой едвали чето понятно.. и синтаксис- помошник, который ваще без комментариев.

Вот с помощью такого кода я решил проблему открытия формы списка при закрытии документа:

Процедура ПослеЗаписи()
   ФормаСписка= Документы.Нарядзаказ.ПолучитьФормуСписка();
   ФормаСписка.Открыть();
КонецПроцедуры

Кто помогает - огромный респект!

Все еще не могу понять почему в моей конфигурации нет в свойствах реквизита поля "Проверка заполнения" . Может кто знает.. подскажите.

detka_cccp

Привет всем! Очень жаль что никто не знает как реализовать *Проверку заполнения* и почему ее нет в конф 8.1, это прискорбно.
В данный момент заканчиваю с отчетностью в своей конфигурации, разобрался полностью без посторонней помощи, пользуясь всего одной литературой - Митичкин Разработка в системе 1С Предприятие 8.0.
Однако нигде не нашел как можно менять результат вывода переменных типа Дата в таком виде, в котором бы я хотел.
Например, переменная ТекущаяДата по умолчанию выводится в виде 17.03.2012 0:00:00, а мне вот совсем ни к чему отображение времени, хватит только даты. Подскажите пожалйста, как это сделать?
В синтаксис-помошнике я нашел только вот такое:
ЧастиДаты (DateFractions)
Дата (Date)
Использование:
Только чтение.
Описание:
Значение состоит только из даты (без времени).

sergejK74

В синтакс-помощнике есть описание функции Формат. В последнее время ее описание на форуме - это бестселлер.
Проверку заполнения можно сделать в процедуре ПередЗаписью().
Проверки заполнения нет в 8.1, ровно по той причине что ее и нет в 7.7. Эти платформы уже развиваться не будут. Все переходят на 8.2, некоторые на 8.3. Кроме Митичкина (он к тому же по 8.0) по отчетности есть Простые приемы разработки, Хрусталева, Радченко.
Кнопочка Спасибо - слева!

cska-fanat-kz

Эхх! Опередили! ;)

Для настройки отображения значения типа Дата применяется функция Формат().

ЗЫ А как насчет Радченко?

ЗЫЫ Для проверки заполнения реквизитов применяют событие ПередЗаписью() формы или объекта.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

detka_cccp

Респект и уважуха вам, парни! С функцией формат всё получилось, позже попытаюсь написать код пройедуры ПередЗаписью() дабы нужные поля в документе не были пустыми.
Еще раз - спасибо, реально помогли. Обращайтесь ко мне если что надо рассказать по форексу и mql4, ась 266743232

detka_cccp

Парни, хоть убей - не могу разгадать тайну оператора Возврат.
Хочу чтобы документ не закрывался не проводился и не сохранялся если не заполнено поле Цена1.
Пишу процедуру

Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
   Если Цена1 = 0 Тогда Возврат;
   КонецЕсли;
КонецПроцедуры

Сразу скажу - чувствую что это тупость, но других вариантов не нашел.
Нашел тока про сам возврат в синт. помошнике
// Операторы
Исполняемые операторы процедуры.
Возврат
Необязательное ключевое слово, которое завершает выполнение процедуры и осуществляет возврат в точку программы, из которой было обращение к процедуре. Использование данного оператора в процедуре не обязательно.

В нете нашел вот такую процедуру, я так понял как раз для проверки заполнения полей ввода любого документа, для тех полей у которых стоит АвтоометкаНезаполненного.

   Функция НезаполненыОбязательныеПоля(Форма) Экспорт
   Для каждого ЭлементФормы Из Форма.ЭлементыФормы Цикл
     Если ТипЗнч(ЭлементФормы) = Тип("Полеввода") Тогда
       Если ЭлементФормы.АвтоОтметкаНезаполненного Тогда
         Если НЕ ЗначениеЗаполнено(Форма.ЭлементыФормы[ЭлементФормы.Имя].Значение) Тогда
            Предупреждение("Не заполнено обязательное поле """ + ЭлементФормы.Имя + """", 10);
            Форма.ТекущийЭлемент = ЭлементФормы;
            Возврат Истина;
         КонецЕсли;   
       КонецЕсли;
     КонецЕсли;
   КонецЦикла;
   Возврат Ложь;
КонецФункции // НезаполненыОбязательныеПоля()

Потом в каждом модуле формы писать

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   Отказ = НезаполненыОбязательныеПоля(ЭтаФорма);
КонецПроцедуры

Что я и сделал, но к сожалению ничего не происходит и никаких ошибок не выдает.

Подскажите мне путь к истине пожалйста.


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск