|
Заполнение табличной поле 8.1 | ☑ | ||
---|---|---|---|---|
0
Sem0709
30.11.12
✎
06:26
|
На форме табличное поле, в ней колонки Код, Номенклатура, Центр, Вил, Вул. Задача состоит в том, чтобы добавлялась в ОДНУ строку наименование Номенклатура заполнялись соответствующие значения колонок Центр, Вил и Вул. Сейчас добавляется три строки одинакового Номенклатура к каждому значению Центр, Вил и Вул. Что в принципе логично. Не могу понять на уровне чего, Запроса или Цикла должна решаться проблема. Буду рад советам и примерам. надеюсь понятно объясняюсь, если что спрашивайте, постараюсь объяснить иначе. Заранее благодарен!
Нынешней код: Процедура ЗаполнитьОстаткиНажатие(Элемент) ПереченьТоваров.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Склад КАК Склад, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество, | ТоварыНаСкладахОстатки.Номенклатура.Код КАК Код, | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | |УПОРЯДОЧИТЬ ПО | Код"; Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() цикл НоваяСтрока = ПереченьТоваров.Добавить(); НоваяСтрока.Код = Результат.Код; НоваяСтрока.Номенклатура = Результат.Номенклатура; НоваяСтрока.Количество = Результат.Количество; Если Результат.Склад = "131 Центральный" тогда НоваяСтрока.Центр = Результат.Количество; ИначеЕсли Результат.Склад = "131 Вулканная" тогда НоваяСтрока.Вул = Результат.Количество; ИначеЕсли Результат.Склад = "131 Вилючинск" тогда НоваяСтрока.Вил = Результат.Количество; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
Wobland
30.11.12
✎
06:27
|
постарайся объяснить иначе
|
|||
2
Wobland
30.11.12
✎
06:28
|
Задача состоит в том, чтобы добавлялась...наименование...заполнялись соответствующие значения
что это за набор слов? |
|||
3
Wobland
30.11.12
✎
06:30
|
остатки на какую дату? зачем склад со строкой сравниваешь?
предлагаю сделать нормальный запрос и тупо заполнить твою таблицу |
|||
4
Sem0709
30.11.12
✎
06:34
|
Сейчас таблица выглядит так:
|Наиименование|Центр|Вил|Вул| ----------------------------- |Какая туфта |10 | | | |Какая туфта | |5 | | |Какая туфта | | |2 | Мне надо так: |Наиименование|Центр|Вил|Вул| ----------------------------- |Какая туфта |10 |5 |2 | |
|||
5
Килограмм
30.11.12
✎
06:35
|
сделай группировку по номенклатуре
|
|||
6
Килограмм
30.11.12
✎
06:35
|
в запросе
|
|||
7
Килограмм
30.11.12
✎
06:36
|
Номенклатура, код - поля группируются, а остальные суммируются
|
|||
8
Godofsin
30.11.12
✎
06:37
|
Сортирнуть ТЗ на выходе?
|
|||
9
w2k3
30.11.12
✎
06:39
|
или сделай тупо: после Следующий() наложи условие на проверку что элементы равны и просто дополняй дальше без новой строки. так по молодости делал когда запросов не знал
|
|||
10
Килограмм
30.11.12
✎
06:39
|
(3) + склад со строкой сравнивать нельзя
Вот это: Если Результат.Склад = "131 Центральный" тогда Всегда будет давать ложь, это разные типы значений |
|||
11
Wobland
30.11.12
✎
06:47
|
(5) сделать запрос ему надо, а не группировку
|
|||
12
Wobland
30.11.12
✎
06:50
|
выбрать по первому складу полное по второму ...
|
|||
13
Sem0709
30.11.12
✎
07:02
|
(3) остатки на какую дату?
Нет периода, даты. Остатки актуальные, доступные на момент заполнения (3)(10)+ склад со строкой сравнивать нельзя Исправил на ТоварыНаСкладахОстатки.Склад.Наименование КАК Склад (7) Тогда значение Склад = 3, для условия (Если Результат.Склад = "131 Центральный" тогда) не приемлемо... (12) Можно пример, пожалуйста!? |
|||
14
Wobland
30.11.12
✎
07:10
|
(13) нет. додумывай сам
|
|||
15
Килограмм
30.11.12
✎
07:24
|
(0) Ещё пища для размышления: можно вообще избавится от условий
Если Результат.Склад = "131 Центральный" тогда И делать Это в самом запросе с помощью конструкций Выбор УСЛОВИЕ Тогда ВЫРАЖЕНИЕ Иначе ВЫРАЖЕНИЕ Конец Только для этого нужно будет склады в виде параметров в запрос передать. |
|||
16
Wobland
30.11.12
✎
07:27
|
(15) дошло? ;) см (3)
|
|||
17
Килограмм
30.11.12
✎
07:33
|
(16) аха ;)
|
|||
18
cw014
30.11.12
✎
07:49
|
> Заполнение табличной поле
Заполнение табличной полИ... :) Ну и центр, вил и вул - чук и гек :))))) Процедура ЗаполнитьОстаткиНажатие(Элемент) ПереченьТоваров.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Склад КАК Склад, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество, | ТоварыНаСкладахОстатки.Номенклатура.Код КАК Код, | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | |УПОРЯДОЧИТЬ ПО | Код |ИТОГИ ПО | Номенклатура"; Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Результат.Следующий() цикл НоваяСтрока = ПереченьТоваров.Добавить(); НоваяСтрока.Код = Результат.Код; НоваяСтрока.Номенклатура = Результат.Номенклатура; НоваяСтрока.Количество = Результат.Количество; ВыборкаСкладов = Результат.Выбрать(); Пока ВыборкаСкладов.Следующий() Цикл Если Результат.Склад = "131 Центральный" тогда НоваяСтрока.Центр = Результат.Количество; ИначеЕсли Результат.Склад = "131 Вулканная" тогда НоваяСтрока.Вул = Результат.Количество; ИначеЕсли Результат.Склад = "131 Вилючинск" тогда НоваяСтрока.Вил = Результат.Количество; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
19
Sem0709
30.11.12
✎
10:59
|
(18)Огромное спасибо, немного дошаманил, все работает. Долго кубаторил почему))
(16)Вечером поищу, почитаю как с условием в запросе сделать... только начал изучать 1С, в будущем пригодится. |
|||
20
cw014
30.11.12
✎
11:00
|
(19) Спасибо не булькает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |