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

Автор Тема: Как передать данные от сервера клиенту  (Прочитано 4113 раз)

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

Оффлайн Kolya123

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-25
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте, помогите новичку, как мне вернуть данные от сервера клиенту, чтобы дальше ими заполнить табличную форму документа, при этом  данные беру из другого документа. Вот что я написал -
&НаКлиенте
Процедура КлиентПриИзменении(Элемент, ПолучитьДанные, СтандартнаяОбработка)
    ТД = Элементы.Информация.ТекущиеДанные;
    ПолучитьДанные();
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ПолучитьДанные()

   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   РеализацияЗаказ.Фильм,
      |   РеализацияЗаказ.Количество,
      |   РеализацияЗаказ.Срок,
      |   РеализацияЗаказ.Стоимость,
      |   РеализацияЗаказ.Ссылка.Дата,
      |   РеализацияЗаказ.Ссылка.Клиент
      |ИЗ
      |   Документ.Реализация.Заказ КАК РеализацияЗаказ";

   РезультатЗапроса = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

   КонецЦикла;

   

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


Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
Рез = Новый .. .Структура? ТЗ ?
Получитьданные(рез);

//Работаем с возвращенными значениями
Для каждого стр из Рез Цикл

Цикл;


...
...
...
...
&НаСервереБезКонтекста
Процедура ПолучитьДанные(Рез)
Цикл
рез.Добавить()
КонецЦикла

КонецПроцедуры
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн Kolya123

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-25
  • Сайт: 
  • Профессия: Ученик 1С
&НаКлиенте
Процедура КлиентПриИзменении(Элемент, СтандартнаяОбработка)
    ТД = Элементы.Информация.ТекущиеДанные;
    МассивДанных = Новый Массив;
    ПолучитьДанные(МассивДанных);
   
    Для Каждого СтрокаМассива Из МассивДанных Цикл
    ТД.Фильм = СтрокаМассива.Фильм;   
    ТД.Количество = СтрокаМассива.Количество;
    ТД.Срок = СтрокаМассива.Срок;
    ТД.Стоимость = СтрокаМассива.Стоимость;
   
    КонецЦикла;
   
КонецПроцедуры

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

   РезультатЗапроса = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      НоваяСтрока = ТЗ.Добавить();
      НоваяСтрока.Фильм = ВыборкаДетальныеЗаписи.Фильм;
      НоваяСтрока.Количество = ВыборкаДетальныеЗаписи.Количество;
      НоваяСтрока.Стоимость = ВыборкаДетальныеЗаписи.Стоимость;      
      НоваяСтрока.Срок = ВыборкаДетальныеЗаписи.Срок;
      
      
   КонецЦикла;
   
      МассивДанных = Новый Массив;
      
      Для Каждого СтрокаТЗ Из ТЗ Цикл
       
       СтрокаТаблицы = Новый Структура;
        Для Каждого ИмяКолонки Из ТЗ.Колонки Цикл
            СтрокаТаблицы.Вставить(ИмяКолонки.Имя, СтрокаТЗ[ИмяКолонки.Имя]);
        КонецЦикла;
       
        МассивДанных.Добавить(СтрокаТаблицы);
       
    КонецЦикла;

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

{Документ.Возврат.Форма.ФормаДокумента.Форма(9)}: Значение не является значением объектного типа (Фильм)
    ТД.Фильм = СтрокаМассива.Фильм;   

Как это можно исправить?


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Отладкой!
На первый взгляд в коде все нормально...

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

Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Как вариант: используй на сервере не процедуру, а функцию. Перегрузи на ТаблицуЗначений в массив, и возвращай на клиент.
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
А зачем вообще в ТЗ загонять да еще таким способом?
Запрос.Следующий() этого достаточно. вы замедлили работу в два раза , отъели ценную память и вообще делаете лишние движения. так можно писать,только если вам плаят за количество написанных строк :) плюс вводите в заблуждение, предполагается, что вы что - то хитрое делаете
Добавлено: 08 Окт 2014, 10:10

Как вариант: используй на сервере не процедуру, а функцию. Перегрузи на ТаблицуЗначений в массив, и возвращай на клиент.
Ого! Это зачем это вот так все делать? Может это дествительно решение, расскажите?
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
И еще.
Зачем вам получать массив структур если вы из всей этой массы элементов в итоге получаете только значения ПОСЛЕДНЕГО?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Ого! Это зачем это вот так все делать? Может это дествительно решение, расскажите?
Клиент не поддерживает ТаблицуЗначений, но поддерживает Массив. Моё решение исходит из этого:)
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
а! ну я к тому. что можно сразу в массив:)
Кстати тут очень серьезные рекомендации 1С, и на защите это будет грубейшая ошибка, если не использовать Запрос.Следующий, а выгрузить в ТЗ, а потом из неё заполнять.
Одна из причин, в том, что при Запрос.Следующий данные получаются порционно, а так, если цу вас 150 тыщ товаров,они сразу все в ТЗ запишутся, и прощай сервак если мало в нем памяти
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн Kolya123

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-25
  • Сайт: 
  • Профессия: Ученик 1С
И еще.
Зачем вам получать массив структур если вы из всей этой массы элементов в итоге получаете только значения ПОСЛЕДНЕГО?
Не совсем так, просто я хотел сначала проверить, что табличная часть заполняется, а потом придумать как всеми данными заполнить.
А про сразу в массив, я не знаю как, новичок еще.


Теги:
 

Как перенести данные из 7.7 типовая УСН 1.3 в 1С 8 типовая бухгалтерия

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

Ответов: 0
Просмотров: 4831
Последний ответ 13 Фев 2010, 07:58
от Александр бухгалтер
"Лишние" данные в зарплате

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

Ответов: 3
Просмотров: 3781
Последний ответ 05 Апр 2014, 11:11
от Славянка
"Данные по коду не найдены"

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

Ответов: 6
Просмотров: 8084
Последний ответ 03 Дек 2015, 13:58
от Timofey Gurubanov
Куда сохраняются данные в режиме работы клиент при выгрузке данных обработкой "Универсальный обмен данными в формате XML"

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

Ответов: 3
Просмотров: 6939
Последний ответ 13 Ноя 2014, 08:23
от cska-fanat-kz
Как при помощи СКД при формировании макета отчета данные связанного набора данных вывести в Параметр через ";"

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

Ответов: 0
Просмотров: 959
Последний ответ 01 Мар 2016, 14:33
от sveta C

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
27 Сообщений
Golickoff Golickoff
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal