|
Как действует метод Присоединить()? | ☑ | ||
---|---|---|---|---|
0
Gossar1C
22.08.13
✎
11:40
|
Здравствуйте!
Подскажите пожалуйста, немогу как присоединить область штуки к номенклатуре, присоединяется почему то на следующей строке хотя: ТабличныйДокумент (SpreadsheetDocument) Присоединить (Join) Синтаксис: Присоединить(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>) Описание: Присоединяет табличный документ к результирующему табличному документу, [b]помещая его в следующей колонке правее самой правой выведенной колонки[/b], начиная со строки, с которой выводился предыдущий табличный документ. http://s017.radikal.ru/i404/1308/bb/33831f0b3506.jpg |
|||
1
SnarkHunter
22.08.13
✎
11:41
|
Даже самым исправным инструментом можно испортить исходный материал.
|
|||
2
Rie
22.08.13
✎
11:42
|
(0) Может (так, для разнообразия) код покажешь?
|
|||
3
Fedot200
22.08.13
✎
11:44
|
(0) какой-то аляпетский атчёт и так и работает
|
|||
4
Gossar1C
22.08.13
✎
11:46
|
(2) код смехотворный, просто я в отчетах вообще не шарю и как построить нормально его не понимаю... СКД не предлагайте, мне нужна обработка чтобы потом по складам формировать заказ поставщику
|
|||
5
Gossar1C
22.08.13
✎
11:46
|
Процедура ВыполнитьФормированиеОтчета()
Данные = ЗаполнитьДанныеДляОтчета(); Макет = ПолучитьОбщийМакет("МакетОтчетаПоСкладам"); ДанныеЗаполнения = Данные.ТаблицаДанных.Выбрать(); ТаблицаСкладов = Новый ТаблицаЗначений; ТаблицаСкладов.Колонки.Добавить("Склад"); ТаблицаСкладов.Колонки.Добавить("Номенклатура"); Пока ДанныеЗаполнения.Следующий() Цикл ДанныеЗаполненияПоСкладам = Неопределено; ДанныеЗаполненияПоСкладам = ДанныеЗаполнения.ТаблицаТоваров.Выгрузить(); Для Каждого Элем Из ДанныеЗаполненияПоСкладам Цикл НоваяСтрока = ТаблицаСкладов.Добавить(); НоваяСтрока.Склад = Элем.Номенклатура.Склад; НоваяСтрока.Номенклатура = Элем.Номенклатура; КонецЦикла; КонецЦикла; ТаблицаНоменклатуры = ТаблицаСкладов.Скопировать(); ТаблицаСкладов.Свернуть("Склад"); ОбластьШапкаТаблицыЗаказы = Макет.ПолучитьОбласть("R1C1:R2C5"); ОбластьДанныеТаблицыСклад = Макет.ПолучитьОбласть("R3C1:R4C5"); ОбластьДанныеТаблицыНоменклатура = Макет.ПолучитьОбласть("R5C1:R5C5"); ОбластьДанныеТаблицыЗаказы = Макет.ПолучитьОбласть("ДанныеТаблицыЗаказы"); ОбластьДанныеТаблицыШтуки = Макет.ПолучитьОбласть("ДанныеТаблицыНоменклатуры|ДанныеТаблицыШтуки"); Объект.ПолеОтчета.Вывести(ОбластьШапкаТаблицыЗаказы); СтрП = 0; Проверка = Истина; Уровень = 0; Стр = 0; Для Каждого ЭлементСклада ИЗ ТаблицаСкладов Цикл ОбластьДанныеТаблицыСклад.Параметры.Склад = ?(ЗначениеЗаполнено(ЭлементСклада.Склад),ЭлементСклада.Склад,"<не указан>"); Объект.ПолеОтчета.Вывести(ОбластьДанныеТаблицыСклад,Стр); СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Склад",ЭлементСклада.Склад); МассивНайденных = ТаблицаНоменклатуры.НайтиСтроки(СтруктураПоиска); Для Стр = 0 По МассивНайденных.Количество() Цикл Если Стр <> МассивНайденных.Количество() Тогда Если Проверка = Истина Тогда Для СтрП = 0 По Данные.ТаблицаДанных.Выбрать().Количество() Цикл Если СтрП <> Данные.ТаблицаДанных.Выбрать().Количество() Тогда ОбластьДанныеТаблицыШтуки.Параметры.Штуки = СтрП; ОбластьДанныеТаблицыНоменклатура.Присоединить(ОбластьДанныеТаблицыШтуки); Проверка = Ложь; КонецЕсли; КонецЦикла; КонецЕсли; //Добавляем номенклатуру ОбластьДанныеТаблицыНоменклатура.Параметры.Номенклатура = МассивНайденных[Стр].Номенклатура; Объект.ПолеОтчета.Вывести(ОбластьДанныеТаблицыНоменклатура,Стр); КонецЕсли; КонецЦикла; Стр = Стр + 1; КонецЦикла; ДанныеЗаполненияШапки = Данные.ТаблицаДанных.Выбрать(); Пока ДанныеЗаполненияШапки.Следующий()Цикл ГотоваяСтрока = Сред(Строка(ДанныеЗаполненияШапки.Ссылка),Найти(ДанныеЗаполненияШапки.Ссылка,"РН"),11); ОбластьДанныеТаблицыЗаказы.Параметры.Ссылка = ГотоваяСтрока; Объект.ПолеОтчета.Вывести(ОбластьДанныеТаблицыЗаказы,ДанныеЗаполненияШапки.Уровень()); КонецЦикла; КонецПроцедуры |
|||
6
Gossar1C
22.08.13
✎
11:48
|
каких то серьезных областей кода искать не стоит, пока что просто хочу разобраться как правильно выводить все, в том числе штуки для каждой номенклатуры и сколько их в каждом заказе
|
|||
7
Fedot200
22.08.13
✎
11:52
|
ОбластьШапкаТаблицыЗаказы = Макет.ПолучитьОбласть("R1C1:R2C5"); а зачем такие извраты?
|
|||
8
Rie
22.08.13
✎
11:54
|
(5) Этот код:
выводит склад справа от склада выводит штуки потом, с новой строки, - номенклатуру |
|||
9
Gossar1C
22.08.13
✎
11:55
|
(7) таки я конректно ячейку с картинкой получаю, если я буду по именам областей делать они делают какие то отступы, скорее всего связанные из за пересечения
|
|||
10
Rie
22.08.13
✎
11:56
|
+(8) Не знаю, как там тебе надо, но надо:
сначала Вывести() то, что слева потом Присоединить() то, что правее |
|||
11
Kalac
22.08.13
✎
11:59
|
(10) Либо поиграть с Итогами и обходами результата запроса для кросс-отчета
|
|||
12
Gossar1C
22.08.13
✎
12:00
|
(10) а как же мне штуки потом подсчитывать? я вот вывожу первую номенклатуру в этом складе потом ищу ее в первом заказе
заполняю параметр "штуки", далее присоединяю область, ищу в следующем заказе, и так по количество заказов, а следующую номенклатуру как обрабатывать? ведь области уже присоеденины... |
|||
13
Kalac
22.08.13
✎
12:01
|
(12) Сначала шапку заполняешь методом присоединить, потом выводишь последовательно номенклатуру вывести и добиваешь ячейки по горизонтали методом присоединить
|
|||
14
palpetrovich
22.08.13
✎
12:07
|
цвета - вырвиглаз :)
|
|||
15
Gossar1C
22.08.13
✎
12:08
|
(13) к Области номенклатуры я присоединю допустим 10 областей ОбластьШтук и ОбластьНоменклатуры уже будет с этими областями, тоесть я первую номенклатуру заполню штуками, а вторая и следующие будут с таким же количеством штук в каждом заказе, потому что
в первый раз мы уже Присоединили к ОбластиНоменклатуры 10 областей ОбластьШтук и заполнили их, незнаю как еще объяснить четко... |
|||
16
Gossar1C
22.08.13
✎
13:29
|
up
|
|||
17
Fedot200
22.08.13
✎
13:36
|
(15) Может дело в запросе?
|
|||
18
Rie
22.08.13
✎
14:01
|
А зачем столько мучений, если есть СКД?
|
|||
19
Gossar1C
22.08.13
✎
15:43
|
(17) дело не в данных, а в областях, когда я первый раз присоединю 10 областей они уже будут висеть и для второго и для третьего, дело в том как к ним потом обращаться? вот первые области штук я их заполнил (первой строки номенклатуры), а во второй строке номенклатуры как их уже заполнять? я ведь заполняю когда присоединяю
к примеру Номенклатура1 +ОбластьШтук(4шт. по Заказу1) +ОбластьШтук(6шт. по Заказу2) Номенклатура2 +ОбластьШтук(4шт. по Заказу1) +ОбластьШтук(6шт. по Заказу2) а все потому что они уже присоеденины и заполнены |
|||
20
Gossar1C
22.08.13
✎
15:45
|
Первый = Истина;
СтрП = 0; Уровень = 0; Стр = 0; Для Каждого ЭлементСклада ИЗ ТаблицаСкладов Цикл ОбластьДанныеТаблицыСклад.Параметры.Склад = ?(ЗначениеЗаполнено(ЭлементСклада.Склад),ЭлементСклада.Склад,"<не указан>"); Объект.ПолеОтчета.Вывести(ОбластьДанныеТаблицыСклад,Стр); СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Склад",ЭлементСклада.Склад); МассивНайденных = ТаблицаНоменклатуры.НайтиСтроки(СтруктураПоиска); Для Стр = 0 По МассивНайденных.Количество() Цикл Если Стр <> МассивНайденных.Количество() Тогда //Добавляем номенклатуру ОбластьДанныеТаблицыНоменклатура.Параметры.Номенклатура = МассивНайденных[Стр].Номенклатура; Если Первый Тогда Для СтрП = 0 По Данные.ТаблицаДанных.Выбрать().Количество() Цикл Если СтрП <> Данные.ТаблицаДанных.Выбрать().Количество() Тогда ОбластьДанныеТаблицыНоменклатура.Присоединить(ОбластьДанныеТаблицыШтуки); КонецЕсли; КонецЦикла; Первый = Ложь; КонецЕсли; ОбластьДанныеТаблицыНоменклатура.Присоединить(ОбластьДанныеТаблицыНоменклатура); КонецЕсли; КонецЦикла; |
|||
21
Gossar1C
22.08.13
✎
15:47
|
сори строчку не затер, вместо ОбластьДанныеТаблицыНоменклатура.Присоединить(ОбластьДанныеТаблицыНоменклатура); Объект.ПолеОтчета.Вывести(ОбластьДанныеТаблицыНоменклатура,Стр);
|
|||
22
Gossar1C
22.08.13
✎
15:53
|
(18) в СКД можно сделать кнопочку на форме, и этой кнопочкой обращаться к данным которые выведены в отчет и формировать заказ поставщику?
|
|||
23
Gossar1C
22.08.13
✎
16:09
|
все разобрался) всем спасибо за помощь и наводки) внимательно почитал СП и метод присоединить(), Надо присоединять не к области, а обращаться сразу к Отчету тоесть Объект.ПолеОтчета.Присоединить(ОбластьШтук) и все отлично)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |