![]() |
![]() |
|
Работа с ТЧ | ☑ | ||
---|---|---|---|---|
0
2version
15.02.13
✎
18:07
|
Люди, спасайте. Ничего не могу понять.
Мне нужно, чтоб из документа выбирались определенные поля и вводились в таблицу. Написал вот такой код: ********************************************************************** &НаСервере Процедура хз() НоваяСтрока = ЭтаФорма.СписокВыбораМП.Добавить(); Колонка =("ФИО"); Переменная1 = Справочники.Сотрудники.Выбрать(); Пока Переменная1.Следующий()=1 Цикл НоваяСтрока[Колонка] = Переменная1.Фамилия +" "+ Переменная1.Имя+" "+ Переменная1.Отчество; КонецЦикла; КонецПроцедуры ********************************************************************** На клиенте я просто вызываю эту процедуру, естественно не кидая туда никаких параметров. Но вот какая беда, выводится в таблице только последняя строчка из всей БД. Я так понимаю я в цикле постоянно переприсваиваю НоваяСтрока, но как сделать, чтобы нормально заполнялось не хватает опыта. Я уже после вставлял ЗаполнениеТаблицы(), результат аналогичен. |
|||
1
Rie
15.02.13
✎
18:09
|
(0) А вставить добавление строки внутрь цикла - не пробовал?
|
|||
2
2version
15.02.13
✎
18:13
|
(1) Пробовал. Добавляет столько строк, сколько и полей в БД, но они пустые. А заполняется только 1-я строка последней записью в БД.
Если вызвать ошибку в цикле, то тогда первая строка как и положено заполнится первой записью, дальше естественно ошибка. |
|||
3
2version
15.02.13
✎
18:15
|
(2) Причем если я делаю вывод сообщения:
Сообщить (Переменная1.Фамилия +" "+ Переменная1.Имя+" "+ Переменная1.Отчество); Мне выводится сообщение как положено всех строк по очереди, т.е. к БД доступ идет нормальный. |
|||
4
Rie
15.02.13
✎
18:15
|
(2) Покажи код, который "пробовал".
|
|||
5
Reset
15.02.13
✎
18:16
|
&НаСервере
Процедура хз() Запрос=Новый Запрос("Выбрать Фамилия+Имя+Отчество Как Фио из Справочник.СписокВыбораМП"); СписокВыбораМП.Загрузить(Запрос.Выполнить().Выгрузить()); КонецПроцедуры |
|||
6
2version
15.02.13
✎
18:17
|
(2) Вот так вот я делал. Тут код с комментами, сори за неотсортированный хлам:
************************************************************ &НаСервере Процедура хз() НоваяСтрока = ЭтаФорма.СписокВыбораМП.Добавить(); Колонка =("ФИО"); Переменная1 = Справочники.Сотрудники.Выбрать(); // текстстрока.Артикул = текстстрока.Номенклатура.Артикул; // Сообщить (Справочники.Сотрудники.НайтиПоРеквизиту("Имя",текстстрока.Артикул)); Пока Переменная1.Следующий()=1 Цикл НоваяСтрока[Колонка] = Переменная1.Фамилия +" "+ Переменная1.Имя+" "+ Переменная1.Отчество; // ЭтаФорма.СписокВыбораМП.Добавить(); //ЭтаФорма.СписокВыбораМП.Об //Сообщить(Переменная1.Фамилия +" "+ Переменная1.Имя+" "+ Переменная1.Отчество); // ЗаполнениеТаблицы(); КонецЦикла; //Сообщить("Сотрудник " + Переменная1.Фамилия +" "+ Переменная1.Имя+" "+ Переменная1.Отчество); //Для Каждого ЭлементМассива из МассивЗначений Цикл // Если МассивЗначений.Количество() >= ЭтаФорма.СписокВыбораМП.Количество() Тогда // НоваяСтрока[Колонка] = МассивЗначений.Получить(ЭтаФорма.СписокВыбораМП.Количество()-1); // ЗаполнениеТаблицы(); // ПриОткрытии(Отказ); //КонецЕсли; КонецПроцедуры *********************************************************** |
|||
7
Reset
15.02.13
✎
18:18
|
(6) Здесь нет того, что говорили в (1)
|
|||
8
Rie
15.02.13
✎
18:18
|
(6) НоваяСтрока = ЭтаФорма.СписокВыбораМП.Добавить(); - перед циклом, а не внутри него.
|
|||
9
Reset
15.02.13
✎
18:19
|
(7) Проглядел. Точнее есть, но неверно.
|
|||
10
2version
15.02.13
✎
18:22
|
Подкажи как правильно, пжл. Я не очень понял про цикл. Цикл на серваке 1, и он начинается со слова Пока ...
Внутри него нету того, что ты мне сказал. Ты имел введу вверху цикла поставить добавление строки? Т.е. выше цикла Пока? |
|||
11
Reset
15.02.13
✎
18:23
|
(10) Rie же сказал как правильно
|
|||
12
2version
15.02.13
✎
18:23
|
Добавление строки выше цикла вызывает простое добавление пустой строки в таблице, а дальше заполнение как и раньшею
|
|||
13
Reset
15.02.13
✎
18:24
|
&НаСервере
Процедура хз() НоваяСтрока = ЭтаФорма.СписокВыбораМП.Добавить(); /// Убрать отсюда Колонка =("ФИО"); Переменная1 = Справочники.Сотрудники.Выбрать(); Пока Переменная1.Следующий()=1 Цикл НоваяСтрока = ЭтаФорма.СписокВыбораМП.Добавить(); /// Добавить сюда НоваяСтрока[Колонка] = Переменная1.Фамилия +" "+ Переменная1.Имя+" "+ Переменная1.Отчество; КонецЦикла; КонецПроцедуры |
|||
14
2version
15.02.13
✎
18:26
|
(13) Спасибо, ребят. Это наверное 2 часа сна дают о себе знать :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |