Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Янв 2017, 15:51
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Передача параметров из ячейки поля табличного документа в форму создания нового документа 1с 8.3  (Прочитано 1454 раз)

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

Оффлайн Анна Баханович

  • *
  • Сообщений: 30
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-05
  • Сайт: 
Всем привет!
Помогите, пожалуйста, кто может....
Есть схема, которая выводится на экран в ПолеТабличногоДокумента

...где ячейки за столом обрабатываются по нажатию ПроцедуройРасшифровки

//
&НаКлиенте
Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    Если ТипЗнч(Расшифровка) = Тип("ДокументСсылка.Питание_РегистрацияПитающихся") Тогда
       //Сообщить ("1 " + Расшифровка);     
    Иначе
       //Сообщить ("2 " + Расшифровка);
      СтандартнаяОбработка = ЛОЖЬ;
      Форма = ПолучитьФорму("Документ.Питание_РегистрацияПитающихся.Форма.ФормаДокумента");
                Форма.Открыть();
      
   КонецЕсли; 
КонецПроцедуры
//

... если место занято, выводится документ регистрации клиента, если нет то новый документ регистрации....


Как передать в форму создания нового документа данные из обрабатываемой ячейки ПоляТабличногоДокумента???
...может немножко запутано...ну вдруг кто поможет....








Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Глобальный контекст (Global context)
ОткрытьФорму (OpenForm)
Вариант синтаксиса: По названию

Синтаксис:

ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)

через параметр передавайте что угодно

Оффлайн Анна Баханович

  • *
  • Сообщений: 30
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-05
  • Сайт: 
Спасибо, что отозвались!  ...это знаю... не получается создать автоматом при открытии формы нового документа запись в табличной части этого документа...именно туда нужно передать значения...:dfbsdfbsdf:

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
не получается создать автоматом при открытии формы нового документа запись в табличной части этого документа.
Не очень информативное сообщение. Если вы что-то делали - то приведите код.
Ваши данные из отчета нужно запихнуть в вышеозначенную структуру. В самом документ в "ПриСозданииНаСервере" эти данные доставать из "Параметры".

Оффлайн Анна Баханович

  • *
  • Сообщений: 30
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-05
  • Сайт: 
...не получается... что-то упускаю...:dfbsdfbsdf:

..вот код...

//заполнение табличного поля с расшифровкой
   Для ИндексСтол = 1 По КолСтолов Цикл
      Для Каждого Элемент Из СписокСтолов Цикл
         Если Строка(Элемент.Значение) = Строка(ИндексСтол) Тогда
             МестЗаСтолом = Число(Элемент.Представление);
         КонецЕсли;         
      КонецЦикла;
      //официанты   
      ПараметрОф = Новый Структура;
      Для Каждого Элемент Из СписокОфициантов Цикл
         Если СокрЛП(Строка(Элемент.Значение)) = СокрЛП(Строка(ИндексСтол)) Тогда
             ОфСтол =  Элемент.Представление;
         КонецЕсли;      
        КонецЦикла;
      ПараметрОф.Вставить("Оф" + Строка(ИндексСтол), ОфСтол);
      Область.Параметры.Заполнить(ПараметрОф);
      Для ИндексМесто = 1 По 6 Цикл
         Если ИндексМесто = 1 Тогда
            ПараметрМесто = Новый Структура;
            ПараметрМесто.Вставить("Стол" + Строка(ИндексСтол) + "1", "1");
            Область.Параметры.Заполнить(ПараметрМесто);
            ПараметрРасшифровки = Новый Структура;
            ПараметрРасшифровки.Вставить("ПараметрРасшифровки" + Строка(ИндексСтол) + "1", "новый");
                Область.Параметры.Заполнить(ПараметрРасшифровки);
         КонецЕсли;
            Если ИндексМесто = 2 Тогда
            ПараметрМесто = Новый Структура;
            ПараметрМесто.Вставить("Стол" + Строка(ИндексСтол) + "2", "2");
            Область.Параметры.Заполнить(ПараметрМесто);
            ПараметрРасшифровки = Новый Структура;
            ПараметрРасшифровки.Вставить("ПараметрРасшифровки" + Строка(ИндексСтол) + "2", "новый");
                Область.Параметры.Заполнить(ПараметрРасшифровки);
         КонецЕсли;
            Если ИндексМесто = 3 Тогда
            ПараметрМесто = Новый Структура;
            ПараметрМесто.Вставить("Стол" + Строка(ИндексСтол) + "3", "3");
            Область.Параметры.Заполнить(ПараметрМесто);
            ПараметрРасшифровки = Новый Структура;
            ПараметрРасшифровки.Вставить("ПараметрРасшифровки" + Строка(ИндексСтол) + "3", "новый");
                Область.Параметры.Заполнить(ПараметрРасшифровки);
         КонецЕсли;
         Если ИндексМесто = 4 Тогда
            ПараметрМесто = Новый Структура;
            ПараметрМесто.Вставить("Стол" + Строка(ИндексСтол) + "4", "4");
            Область.Параметры.Заполнить(ПараметрМесто);
            ПараметрРасшифровки = Новый Структура;
            ПараметрРасшифровки.Вставить("ПараметрРасшифровки" + Строка(ИндексСтол) + "4", "новый");
                Область.Параметры.Заполнить(ПараметрРасшифровки);
         КонецЕсли;
         Если МестЗаСтолом > 4 Тогда
            Если ИндексМесто = 5 Тогда
               ПараметрМесто = Новый Структура;
               ПараметрМесто.Вставить("Стол" + Строка(ИндексСтол) + "5", "5");
               Область.Параметры.Заполнить(ПараметрМесто);
               ПараметрРасшифровки = Новый Структура;
               ПараметрРасшифровки.Вставить("ПараметрРасшифровки" + Строка(ИндексСтол) + "5", "новый");
               Область.Параметры.Заполнить(ПараметрРасшифровки);
            КонецЕсли;
            Если ИндексМесто = 6 Тогда
               ПараметрМесто = Новый Структура;
               ПараметрМесто.Вставить("Стол" + Строка(ИндексСтол) + "6", "6");
               Область.Параметры.Заполнить(ПараметрМесто);
               ПараметрРасшифровки = Новый Структура;
               ПараметрРасшифровки.Вставить("ПараметрРасшифровки" + Строка(ИндексСтол) + "6", "новый");
               Область.Параметры.Заполнить(ПараметрРасшифровки);
            КонецЕсли;
         КонецЕсли;
      КонецЦикла;
   КонецЦикла;
    //заполнение параметров по столам   
   Для Каждого Стр Из Таб Цикл
      ЦветДиеты = WebЦвета.Белый;
      Для Каждого Элемент Из СписокДиет Цикл
         Если СокрЛП(Стр.Рацион) = СокрЛП(Строка(Элемент.Представление)) Тогда
            Если Элемент.Значение = 1 тогда    ЦветДиеты = Цвет1; КонецЕсли;
            Если Элемент.Значение = 2 тогда    ЦветДиеты = Цвет2; КонецЕсли;
                Если Элемент.Значение = 3 тогда    ЦветДиеты = Цвет3; КонецЕсли;
                Если Элемент.Значение = 4 тогда    ЦветДиеты = Цвет4; КонецЕсли;
                Если Элемент.Значение = 5 тогда    ЦветДиеты = Цвет5; КонецЕсли;
                Если Элемент.Значение = 6 тогда    ЦветДиеты = Цвет6; КонецЕсли;
         КонецЕсли;
      КонецЦикла;
        ЗанятоеМесто = Стр.Пол + " - " + Формат(Стр.ДатаПо, "ДЛФ=Д");
      Расшифровка = Стр.Регистратор;
      Пит = Стр.Питающийся;
      Место = Строка(Стр.Стол) + Строка(Стр.Место);
      СписокПит.Вставить(Место, Пит);
      СписокЦветов.Вставить(Место, ЦветДиеты);
      ПараметрМесто = Новый Структура;
      ПараметрМесто.Вставить("Стол" + Место,ЗанятоеМесто);
      Область.Параметры.Заполнить(ПараметрМесто);
      ПараметрРасшифровки = Новый Структура;
      ПараметрРасшифровки.Вставить("ПараметрРасшифровки" + Строка(Место), Расшифровка);
        Область.Параметры.Заполнить(ПараметрРасшифровки);
   
   КонецЦикла;
   Для Каждого Элемент Из СписокПит Цикл
      Если Элемент.Значение = "" Тогда
         СписокПит.Вставить(Элемент.Значение, "свободно");
         Расшифровка = СокрЛП(Строка(Зал) + Строка(Элемент.Ключ));
         
      КонецЕсли;
   КонецЦикла;
    ТабДок.Вывести(Область);

...........процедура расшифровки....

&НаКлиенте
Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   
    Если ТипЗнч(Расшифровка) = Тип("ДокументСсылка.Питание_РегистрацияПитающихся") Тогда
       //Сообщить ("1 " + Расшифровка_занятых);     
   Иначе
       //Сообщить ("2 " + Расшифровка_свободных);
      СтандартнаяОбработка = ЛОЖЬ;
      ПараметрыФормы = Новый Структура("НомерСтола, НомерМеста, Зал");
      ПараметрыФормы.Зал = Лев(Расшифровка,СтрДлина(Расшифровка)-3);
      ПараметрыФормы.НомерСтола = Лев(Расшифровка,СтрДлина(Расшифровка)-1);
      ПараметрыФормы.НомерМеста = Прав(Расшифровка,1);
       Форма = ОткрытьФорму("Документ.Питание_РегистрацияПитающихся.Форма.ФормаДокумента", ПараметрыФормы, ЭтаФорма);
   
   КонецЕсли; 
КонецПроцедуры

......процедура при создании в модуле документа

 &НаСервере
 Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если НЕ Питание_НаСервере.ПередОткрытиемФормыДокумента(ЭтаФорма) Тогда
       Отказ = Истина;
       Возврат;
   КонецЕсли;
   
   Если Не Параметры.НомерСтола.Пустая() Тогда

      ЗаполнитьЗначенияСвойств(ЭтаФорма, Параметры, "НомерСтола, НомерМеста, Зал");
       ЭтаФорма.ЗакрыватьПриЗакрытииВладельца = Истина;
       Объект.Питающиеся.Добавить();
      Элементы.ПитающиесяЗал = Параметры.Зал;
      Элементы.ПитающиесяНомерСтола = Параметры.НомерСтола;
      Элементы.ПитающиесяНомерМеста = Параметры.НомерМеста;
         
   КонецЕсли;
 КонецПроцедуры

....параметры остаются пустыми.....
:dfbsdfbsdf:

   

Оффлайн Kironten

  • *****
  • Сообщений: 712
  • РЕПУТАЦИЯ: 153
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
...не получается... что-то упускаю...:dfbsdfbsdf:

 &НаСервере
 Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если НЕ Питание_НаСервере.ПередОткрытиемФормыДокумента(ЭтаФорма) Тогда
       Отказ = Истина;
       Возврат;
   КонецЕсли;
   
   Если Не Параметры.НомерСтола.Пустая() Тогда

      ЗаполнитьЗначенияСвойств(ЭтаФорма, Параметры, "НомерСтола, НомерМеста, Зал");
       ЭтаФорма.ЗакрыватьПриЗакрытииВладельца = Истина;
       Объект.Питающиеся.Добавить();
      Элементы.ПитающиесяЗал = Параметры.Зал;
      Элементы.ПитающиесяНомерСтола = Параметры.НомерСтола;
      Элементы.ПитающиесяНомерМеста = Параметры.НомерМеста;
         
   КонецЕсли;
 КонецПроцедуры

....параметры остаются пустыми.....
:dfbsdfbsdf:

Вы на сервере. Какие элементы? К объекту обращайтесь.

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
А отладчиком воспользоваться?
ПараметрыФормы.НомерСтола = Лев(Расшифровка,СтрДлина(Расшифровка)-1);

явно строка

  Если Не Параметры.НомерСтола.Пустая() Тогда
Это что вдруг за ноу-хау?

Оффлайн Анна Баханович

  • *
  • Сообщений: 30
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-05
  • Сайт: 
...называется "как придумала"....:D
...всё...утро вечера мудренее.... до завтра....:btbzdb:


Добавлено: 18 Фев 2016, 12:34

...немножко переделала...

//передаем параметры в форму документа
      СтандартнаяОбработка = ЛОЖЬ;
      ПараметрыФормы = Новый Структура("ПризнакСвободно, Зал, НомерСтола, НомерМеста");
      ПараметрыФормы.Зал = ЗалСсылка;
      ПараметрыФормы.НомерСтола = НомерСтола;
      ПараметрыФормы.НомерМеста = НомерМеста;
      ПараметрыФормы.ПризнакСвободно = ИСТИНА;
      Форма = ОткрытьФорму("Документ.Питание_РегистрацияПитающихся.Форма.ФормаДокумента", ПараметрыФормы, ЭтаФорма);

....процедура при создании в модуле документа

 &НаСервере
 Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если НЕ Питание_НаСервере.ПередОткрытиемФормыДокумента(ЭтаФорма) Тогда
       Отказ = Истина;
       Возврат;
   КонецЕсли;
   
   Если  Параметры.ПризнакСвободно = ИСТИНА Тогда
      ЭтаФорма.ЗакрыватьПриЗакрытииВладельца = Истина;
               Объект.Питающиеся.Добавить();
      Элементы.ПитающиесяЗал = Параметры.Зал;
      Элементы.ПитающиесяНомерСтола = Параметры.НомерСтола;
      Элементы.ПитающиесяНомерМеста = Параметры.НомерМеста;
   КонецЕсли;
 КонецПроцедуры

 При нажатии говорит поле объекта ПитающийсяЗал  недоступно для записи...
 Питающийся это ТабличнаяЧасть документа...


:(

Последний раз редактировалось: Анна Баханович; 18 Фев 2016, 12:34. Причина: Объединение сообщений

Оффлайн Kironten

  • *****
  • Сообщений: 712
  • РЕПУТАЦИЯ: 153
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Цитировать
Объект.Питающиеся.Добавить();
      Элементы.ПитающиесяЗал = Параметры.Зал;
      Элементы.ПитающиесяНомерСтола = Параметры.НомерСтола;
      Элементы.ПитающиесяНомерМеста = Параметры.НомерМеста;
   КонецЕсли;
 КонецПроцедуры

Стр = Объект.Питающиеся.Добавить();
      Стр.ПитающиесяЗал = Параметры.Зал;
      Стр.ПитающиесяНомерСтола = Параметры.НомерСтола;
      Стр.ПитающиесяНомерМеста = Параметры.НомерМеста;


Теги:
 

Не работают поля "налоговый" и "бухгалтерский"

Автор oleg_e1Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 1875
Последний ответ 31 Дек 2011, 11:36
от AntonB
Значение "00000000001" поля "Код" не уникально

Автор gigsonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 4275
Последний ответ 24 Ноя 2014, 12:21
от gigson
Значение поля "Владелец" не заполнено или заполнено неверно

Автор ReclaimРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1535
Последний ответ 16 Ноя 2015, 09:36
от cska-fanat-kz
Как программно открыть форму и закрыть с записью, чтобы отработал метод перед записью

Автор con2rРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 937
Последний ответ 06 Июн 2016, 11:54
от vitasw
Как добавить внутреннюю обработку "Печать ТТН" на управляемую форму???

Автор ViktorkaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 6784
Последний ответ 11 Апр 2012, 17:14
от Vit1501

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
152 Сообщений
alex0402
75 Сообщений
alexandr_ll
37 Сообщений
LexaK
29 Сообщений
MuI_I_Ika MuI_I_Ika
27 Сообщений
crow1983
27 Сообщений
sertak sertak
23 Сообщений
дфтын дфтын
17 Сообщений
BuhRust
15 Сообщений
Vzonder
15 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal