|
|
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
добрый день! подскажите,пожалуйста, что не правильно... Есть 2 справочника:"Материал" подчинен "Модели".В документе, в табличной части,выбираем наименование модели(НаимМод),в следующей колонке(КолВо) вводится количество моделей. В результате, в отчете, должно отображаться наименование детали(из справочника Материал) и сколько всего требуется этих деталей. У меня такой код: Процедура ВывестиОтчет() Ном = 0; ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Группа", "Строка",50,,"Группа",20); ТЗ.НоваяКолонка("Наименование", "Справочник.Материал",100); ТЗ.НоваяКолонка("ЕдиницаИзмерения", "Строка",20,,"ЕдиницаИзмерения",20); ТЗ.НоваяКолонка("КолВо", "Число",10,2,"КолВо",10); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица1"); Таб.ВывестиСекцию("Шапка"); Таб.ВывестиСекцию("Заголовок"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 цикл СПРМат = СоздатьОбъект ("Справочник.Материал"); СПРМат.ИспользоватьВладельца(НаимМод); СПРМат.ВыбратьЭлементы(); Пока СпрМат.ПолучитьЭлемент()=1 Цикл Если СПРМат.ТекущийЭлемент().ЭтоГруппа()=1 тогда ТЗ.НоваяСтрока(); ТЗ.Группа = СПРМат.Наименование; Продолжить; иначе ТЗ.НоваяСтрока(); ТЗ.Наименование = СПРМат.ТекущийЭлемент(); ТЗ.ЕдиницаИзмерения = СПРМат.ЕдИзм; ТЗ.КолВо = СПРМат.КолВо*КолВо; КонецЕсли; КонецЦикла; КонецЦикла; ТЗ.ВыбратьСтроки(); ТЗ.Свернуть("Группа,Наименование,ЕдиницаИзмерения","КолВо"); Пока ТЗ.ПолучитьСтроку()=1 Цикл Ном=Ном+1; Группа = ТЗ.Группа; НаимДет = ТЗ.Наименование; ДокИзм = ТЗ.ЕдиницаИзмерения; МатКолВо = ТЗ.КолВо; Таб.ВывестиСекцию("Строка"); КонецЦикла; КонецПроцедуры Но в результате он ничего не сворачивает... Помогите, пожалуйста.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 11:59 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
ничего не сворачивает или ничего не выводит ? зачем сначала выбираешь а потом сворачиваешь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 12:40 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
Ничего не сворачивает.Он должен одинаковые наименования свернуть, а их КолВо сложить. А он выводит все подрят... А как нужно?Если можете подскажите, пожалуйста.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 14:17 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
1 . ну во первых надо убедиться что данные действительно одинаковые (и как объекты и как простые типы причем строки одинаковой длинны и расположения знаков в них) 2. несовпадение типов может быть... у тебя вот еденицы измерения есть строка а реально ты туда передаешь объект 3. у наименования (табличного) - тип ссылка а ты ему длинну ставишь вобщем имхо куча несовпадений типов и может быть чего угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 16:27 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
А в 1С можно скопировать содержимое справочника и вставить для всех моделей? Ну чтобы наименования были одинаковые??? Вот если я сворачиваю по единицеизмерения и колву ,то все правильно, а как по наименованию, то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 17:09 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
винигрет в голове... мухи (ссылки на элементы справочника) отдельно, котлеты (строки) отдельно... Если ссылки разные с одним наименованием можно сворачивать хоть до посинения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 17:17 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
Извините, конечно,может вам все это кажется легким и вы возмущены что я такие глупые вопросы задаю, но я первый раз пишу на 1С.Поэтому, пожалуйста, если можно поподробнее: где и что не так. Что нужно поменять??? В создании ТЗ я поменяла: ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Группа","Строка",50); ТЗ.НоваяКолонка("Наименование","Справочник.Материал"); ТЗ.НоваяКолонка("ЕдиницаИзмерения", "Строка",50); ТЗ.НоваяКолонка("КолВо","Число",10,2); Но это ничего не дало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 17:28 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
на пальцах: >>Вот если я сворачиваю по единицеизмерения и колву ,то все правильно, а как по наименованию, то... Таблица: СсылкаТовар1 (Наименование = "ААА"), "штука", 1 СсылкаТовар2 (Наименование = "ААА"), "штука", 1 СсылкаТовар3 (Наименование = "ААА"), "штука", 1 сворачиваем, получаем: СсылкаТовар1 (Наименование = "ААА"), "штука", 1 СсылкаТовар2 (Наименование = "ААА"), "штука", 1 СсылкаТовар3 (Наименование = "ААА"), "штука", 1 Таблица: СсылкаТовар1 (Наименование = "ААА"), "штука", 1 СсылкаТовар2 (Наименование = "ААА"), "штука", 1 СсылкаТовар2 (Наименование = "ААА"), "штука", 1 сворачиваем, получаем: СсылкаТовар1 (Наименование = "ААА"), "штука", 1 СсылкаТовар2 (Наименование = "ААА"), "штука", 2 Таблица: СсылкаТовар2 (Наименование = "ААА"), "штука", 1 СсылкаТовар2 (Наименование = "ААА"), "штука", 1 СсылкаТовар2 (Наименование = "ААА"), "штука", 1 сворачиваем, получаем: СсылкаТовар2 (Наименование = "ААА"), "штука", 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 17:53 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
То есть вы хотите сказать, что (касательно моего случая) если у меня модели разные, а названия материалов одинаковые, 1С не свернет... Нужно чтобы были одинаковые модели??? А мне нужно, чтобы я ввела разные модели, а он просуммировал одинаковые материалы и выдал название материала и общее кол-во. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 09:37 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
возможно у вас база кривая... чтобы было как у вас возможно структура должна выглядеть так: справочник с "группами", ему подчиненный справочник "модели", справочник "материалы" входящий в справочник "модели" как реквизит. Это даст возможность указывать одни и те же материалы (не по наименованию, а по ссылке что более "надежно") для разных моделей. Т.е.: группа "А" - модель "АА" и в модели указан материал "ААА" кол = 1. .............. - модель "АБ" и в модели указан материал "БББ" кол = 1. .............. - модель "АС" и в модели указан материал "БББ" кол = 1. .............. - модель "АД" и в модели указан материал "ССС" кол = 1. группа "Б" - модель "БА" и в модели указан материал "ААА" кол = 3. .............. - модель "ББ" и в модели указан материал "БББ" кол = 1. .............. - модель "ББ" и в модели указан материал "ААА" кол = 1. группа "С" - модель "СА" и в модели указан материал "ААА" кол = 2. выбирая группы, модели и количество получим: А/ААА/1 А/БББ/1 А/БББ/1 А/ССС/1 Б/ААА/3 Б/БББ/1 Б/ААА/1 С/ААА/2 сворачиваем: А/ААА/1 А/БББ/2 А/ССС/1 Б/ААА/4 Б/БББ/1 С/ААА/2 все группы, модели и материалы - это ссылки на элементы справочников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 09:53 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
Спасибо, сейчас попробую изменить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 10:01 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
Kristi_85, вобщем чтоб не писать многа букаф если необходимо свернуть по наименованию объектов то надо передавать в таблицу "объект.наименование" а если по самим объектам то передавать ссылки т.е. просто "объект" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 11:08 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
а вообще имхо не есть правильный метод в случае если есть необходимость группировки по неким признакам объектов коим и является наименование (в вашем случае) то необходимо вынести этот признак в отдельный реквизит коим будет ссылка на другой справочник (скажем категории и т.д.) тогда и неоднозначностей не будет в любом случае никгда не привязывайтесь к простым необъектным типам (строка или число) т.к. они неуникальны по своей природе и их значения непостоянны (максимум в 7ке - число "1" или "0" за неимением типа "булево") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 11:12 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
если справочник единицы,как это часто бывает, подченен справочнику материалы - ничего он не свернет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 11:52 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
leaf, угу... менять надо на единицы из классификатора :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 12:29 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
Спасибо огромное всем за помощь!!! В итоге у меня получилось 3 справочника: Модель, Составляющие(Код, Название, ЕдиницаИзмерения,Количество) и Материал(Код, Наименование).Тип значения у "Название" поставила "СправочникМатериал". Теперь код вот такой: Процедура ВывестиОтчет() Ном = 0; ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Название","Строка", 25); ТЗ.НоваяКолонка("ЕдИзм", "Строка",20); ТЗ.НоваяКолонка("КолВо","Число",10,2); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица1"); Таб.ВывестиСекцию("Шапка"); Таб.ВывестиСекцию("Заголовок"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 цикл СПРСост = СоздатьОбъект ("Справочник.Составляющие"); СПРСост.ИспользоватьВладельца(НаимМод); СПРСост.ВыбратьЭлементы(); Пока СпрСост.ПолучитьЭлемент()=1 Цикл ТЗ.НоваяСтрока(); ТЗ.Название = СПРСост.ТекущийЭлемент().Название.Наименование; ТЗ.ЕдИзм = СПРСост.ЕдИзм; ТЗ.КолВо = СПРСост.КолВо*КолВо; КонецЦикла; КонецЦикла; ТЗ.ВыбратьСтроки(); ТЗ.Свернуть("Название,ЕдИзм","КолВо"); Пока ТЗ.ПолучитьСтроку()=1 Цикл Ном=Ном+1; НаимДет = ТЗ.Название; ДокИзм = ТЗ.ЕдИзм; МатКолВо = ТЗ.КолВо; Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ВывестиСекцию("Подвал"); Таб.Опции(0,0,0,0); Таб.ТолькоПросмотр(1); Таб.Показать(); КонецПроцедуры И теперь все работает. Еще раз ОГРОМНОЕ СПАСИБО!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2009, 10:00 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
помогали как лучше, получилось как всегда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2009, 10:09 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ, главное чтоб клиент был рад :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2009, 10:42 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
радость его будет недолгой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2009, 10:43 |
|
||
|
Не правильно работает метод "свернуть"
|
|||
|---|---|---|---|
|
#18+
Господин ПЖпомогали как лучше, получилось как всегда... вроде всё правильно девушка, сделала, зачем пужаете?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2009, 16:47 |
|
||
|
|

start [/forum/topic.php?fid=28&gotonew=1&tid=1523155]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 494ms |

| 0 / 0 |
