Имя: Пароль:
1C
1С v8
по кнопке должна открыться форма документа с заполненной тч
0 Alex655
 
20.05.15
13:48
дали такую задачу, в бухгалтерии 3.0 создать обработку, на форму обработки добавляю реквизит с типом "док.ссылка.требованиенакладная", выбираю нужный документ, по кнопке создать должна открыться форма документа "отчет производства за смену" с заполненной тч возвратные отходы. делаю так

&НаКлиенте
Процедура Создать(Команда)
    Форма = ПолучитьФорму("Документ.ОтчетПроизводстваЗаСмену.Форма.ФормаДокумента");
    Тч = ПолучитьНакладную(форма);
    Форма.Объект.ВозвратныеОтходы.Загрузить(тч);
    форма.Открыть();
КонецПроцедуры

&НаСервере
Функция ПолучитьНакладную(форма)
    Док = Объект.Накладная.ПолучитьОбъект();
    й = Док.Материалы.Выгрузить();
    Возврат й;
КонецФункции

но в последствии понял, что тип таблица значений не доступен на клиенте, как быть в таком случае?
1 ДенисЧ
 
20.05.15
13:49
рекомендую для начала прочитать книжку по упринтерфейсу
2 Alex655
 
20.05.15
13:51
ошибку в тексте допустил в функцию на сервере ничего не передаю Тч = ПолучитьНакладную(); и Функция ПолучитьНакладную()

я читаю, но аналогии не нахожу
3 Alex655
 
20.05.15
14:02
(1) хоть намек может сделаете?
4 Kurbash
 
20.05.15
14:03
на клиенте доступен список значений
5 Fragster
 
гуру
20.05.15
14:05
всё через жопу делается. надо в своей кнопке уйти на сервер, передав туда ДанныеФормы, там поменять их как надо, вернуть на клиент (но уже в другую переменную, потому что "нельзя менять данные формы (с)1с"), и потом воспользоваться костылем "копироватьданныеформы" из новых, правильных данных формы в те данные формы, что у открываемой формы.
6 Fragster
 
гуру
20.05.15
14:05
передавать нужно по значению
7 Alex655
 
20.05.15
14:08
(5) так мне менять ничего не надо, просто одну табличную часть загрузить в другую тч, и потом открыть новую форму
9 hhhh
 
20.05.15
14:17
(7) как-то так

на сервере

Док = РеквизитФормыВЗначение("Объект");
Док.ВозвратныеОтходы.Загрузить(тч);
ЗначениеВРеквизитФормы(Док, "Объект");
10 Fragster
 
гуру
20.05.15
14:18
(7) загрузить данные в ТЧ - это ли не "поменять"?
11 Alex655
 
20.05.15
14:24
(9) что то вы не то написали, объект это же требованиеНакладная, а табличная часть возвратныеОтходы это у отчет производства за смену
12 Alex655
 
20.05.15
14:30
(5) в качестве "данныхформы" будет выступать моя тч, которую надо заполнить? если да, то мне какой фрагмент передавать на сервер : Форма.Элементы.ВозвратныеОтходы или форма.Объект.возвратныеотходы?
13 Fragster
 
гуру
20.05.15
14:37
Форма.Объект
14 Alex655
 
20.05.15
14:50
(13) а возвращаю на клиент что?
15 Fragster
 
гуру
20.05.15
14:52
ДанныеФормы
16 Alex655
 
20.05.15
14:56
(15) вот теперь столкнулся с вашей ошибкой в (5) ))
17 Alex655
 
20.05.15
15:03
(15) не понимаю почему выскакивает эта ошибка, если я измененные данные присваиваю переменной "тч" Форма = ПолучитьФорму("Документ.ОтчетПроизводстваЗаСмену.Форма.ФормаДокумента");
    Тч = ПолучитьНакладную(Форма.Объект);
18 hhhh
 
20.05.15
15:05
ну сделайте это на сервере.
19 Fragster
 
гуру
20.05.15
15:08
(17) в определении функции перед параметром надо поставить Знач
20 Alex655
 
20.05.15
15:14
(18) что именно? (19) так Тч = ПолучитьНакладную(знач Форма.Объект);? тогда требует продолжения программа
21 Fragster
 
гуру
20.05.15
15:23
в ОПРЕДЕЛЕНИИ функции
22 Alex655
 
20.05.15
15:29
(21) спасибо Вам огромное за помощь, за терпение и за уделенное время, получилось
23 Alex655
 
20.05.15
15:44
(21) всё что сделал, я все понял, кроме "знач", в синтаксис помощнике такого нету
24 Fragster
 
гуру
20.05.15
15:55
(23) у меня есть:

Функция (Funсtion)
Функция (Funсtion)
Синтаксис:
     Функция <Имя_функции>([[Знач] <Парам1>[=<ДефЗнач>], ... ,[Знач] <ПарамN>[=<ДефЗнач>]])[Экспорт]
     Функция <Имя_функции>([[Знач] <Парам1>[=<ДефЗнач>], ... ,[Знач] <ПарамN>[=<ДефЗнач>]])[Экспорт]
     //Объявления локальных переменных;
     // Операторы ;
     ...
     Возврат <Возвращаемое значение>;
     // Операторы ;
     ...
     КонецФункции

Англоязычный синтаксис:
     Function <Имя_функции>([[Val] <Парам1>[=<ДефЗнач>], ... ,[Val] <ПарамN>[=<ДефЗнач>]])[Export]
     Function <Имя_функции>([[Val] <Парам1>[=<ДефЗнач>], ... ,[Val] <ПарамN>[=<ДефЗнач>]])[Export]
     //Объявления локальных переменных;
     // Операторы;
     ...
     Return <Возвращаемое значение>;
     //

     Операторы;
     ...
     EndFunction

Параметры:

     <Имя_функции>
     Назначает имя функции.

     Знач
     Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т.е. изменение значения формального параметра при выполнении функции никак не повлияет на фактический параметр, переданный при вызове функции. Если это ключевое слово не указано, то параметр функции передается по ссылке, то есть изменение внутри функции значения формального параметра приведет к изменению значения соответствующего фактического параметра.

     <Парам1>, ..., <ПарамN>
     Необязательный список формальных параметров, разделяемых запятыми. Значения формальных параметров должны соответствовать значениям передаваемых при вызове функции фактических параметров. В этом списке определяются имена каждого из параметров так, как они используются в тексте функции. Список формальных параметров может быть пуст.

     =<ДефЗнач>
     Необязательная установка значения параметра по умолчанию. Параметры с установленными значениями по умолчанию можно располагать в любом месте списка формальных параметров (подробнее см. раздел "Передача параметров процедур и функций" справки).

     Экспорт
     Необязательное ключевое слово, которое указывает на то, что данная функция является доступной из других программных модулей.

     // Объявления локальных переменных
     Объявляются локальные переменные, на которые можно ссылаться только в рамках этой функции (см. оператор Перем).

     // Операторы
     Исполняемые операторы функции.

     Возврат <Возвращаемое значение>
     Ключевое слово, которое завершает выполнение функции и возвращает указанное значение в выражение, в котором используется функция.
     В качестве возвращаемого значения может выступать выражение или переменная, значение которого содержит результат обращения к функции.

     КонецФункции
     Обязательное ключевое слово, обозначающее конец исходного текста функции.

Описание:
Ключевое слово Функция начинает секцию исходного текста функции, выполнение которой можно инициировать из любой точки программного модуля, просто указав <Имя_функции> со списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в модуле обычного, управляемого приложения, внешнего соединения, сеанса или общем программном модуле в теле описания функции использовано ключевое слово Экспорт, то это означает, что данная функция является доступной из всех других программных модулей конфигурации.

Функции отличаются от процедур только тем, что возвращают <Возвращаемое значение>. Конец программной секции функции определяется по оператору КонецФункции.

Вызов любой функции в тексте программного модуля можно записывать как вызов процедуры, т.е. в языке допускается не принимать от функции возвращаемое значение.

Переменные, объявленные в теле функции в разделе Объявления локальных переменных, являются локальными переменными данной функции, поэтому доступны только в этой функции (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).


--------------------------------------------------------------------------------





     Методическая информация
25 Alex655
 
20.05.15
16:03
спасибо, а теперь мне сказали сделать эту обработку, как внешняя подключаемая форма для документа отчет пр-ва за смену. Тоесть при подключении на форме документа, должная появится кнопка, при нажатии на которую открывается моя обработка. Интернет предлагает внешние подключаемые печатные формы.
26 Alex655
 
20.05.15
16:05
хотел ее просто так добавить, и понял, что нужно в модуле объекта создать процедуру "сведения о внешней обработке" и так это все описывается. а что там описать для внешней Обработки?
27 Basilio
 
20.05.15
16:27
(26) выгрузи любую внешнюю обработку и посмотри
28 Alex655
 
20.05.15
16:36
сделал, вот код может кому пригодится( с его помощью на форме нужного документа появляется кнопка "заполнить", которая открывает форму обработки
29 Alex655
 
20.05.15
16:38
Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ОтчетПроизводстваЗаСмену");

    ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "ДополнительнаяОбработка");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", );
    
    ТаблицаКоманд = Получить();

    ДобавитьКоманду(ТаблицаКоманд,
        "Заполнить",
        "0",
        "ОткрытиеФормы",
        Истина,
        
    );

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
КонецФункции

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры