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

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

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

  • *****
  • Сообщений: 809
  • РЕПУТАЦИЯ: 171
  • КПД: 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

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

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


Теги:
 

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

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

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

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

Ответов: 4
Просмотров: 5738
Последний ответ 24 Ноя 2014, 12:21
от gigson
Как открыть программно открыть форму контрагента?

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

Ответов: 2
Просмотров: 887
Последний ответ 18 Янв 2017, 12:32
от sertak
Значение поля "Владелец" не заполнено или заполнено неверно

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

Ответов: 1
Просмотров: 2467
Последний ответ 16 Ноя 2015, 09:36
от cska-fanat-kz
Печать штрих кодов на форму печати выводятся 3 штрих кода на принтер выходит только 2.

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

Ответов: 2
Просмотров: 295
Последний ответ 15 Май 2017, 08:59
от ZSS

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

alex0402
91 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений
Dethmontt Dethmontt
22 Сообщений
wise wise
21 Сообщений

* Кто онлайн

  • Точка Гостей: 391
  • Точка Скрытых: 0
  • Точка Пользователей: 12
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal