powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Не правильно работает метод "свернуть"
21 сообщений из 21, страница 1 из 1
Не правильно работает метод "свернуть"
    #36252680
Kristi_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день!
подскажите,пожалуйста, что не правильно...
Есть 2 справочника:"Материал" подчинен "Модели".В документе, в табличной части,выбираем наименование модели(НаимМод),в следующей колонке(КолВо) вводится количество моделей. В результате, в отчете, должно отображаться наименование детали(из справочника Материал) и сколько всего требуется этих деталей.
У меня такой код:
Процедура ВывестиОтчет()
Ном = 0;
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Группа", "Строка",50,,"Группа",20);
ТЗ.НоваяКолонка("Наименование", "Справочник.Материал",100);
ТЗ.НоваяКолонка("ЕдиницаИзмерения", "Строка",20,,"ЕдиницаИзмерения",20);
ТЗ.НоваяКолонка("КолВо", "Число",10,2,"КолВо",10);
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Заголовок");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 цикл
СПРМат = СоздатьОбъект ("Справочник.Материал");
СПРМат.ИспользоватьВладельца(НаимМод);
СПРМат.ВыбратьЭлементы();
Пока СпрМат.ПолучитьЭлемент()=1 Цикл
Если СПРМат.ТекущийЭлемент().ЭтоГруппа()=1 тогда
ТЗ.НоваяСтрока();
ТЗ.Группа = СПРМат.Наименование;
Продолжить;
иначе
ТЗ.НоваяСтрока();
ТЗ.Наименование = СПРМат.ТекущийЭлемент();
ТЗ.ЕдиницаИзмерения = СПРМат.ЕдИзм;
ТЗ.КолВо = СПРМат.КолВо*КолВо;
КонецЕсли;
КонецЦикла;
КонецЦикла;

ТЗ.ВыбратьСтроки();
ТЗ.Свернуть("Группа,Наименование,ЕдиницаИзмерения","КолВо");

Пока ТЗ.ПолучитьСтроку()=1 Цикл
Ном=Ном+1;
Группа = ТЗ.Группа;
НаимДет = ТЗ.Наименование;
ДокИзм = ТЗ.ЕдиницаИзмерения;
МатКолВо = ТЗ.КолВо;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецПроцедуры
Но в результате он ничего не сворачивает...
Помогите, пожалуйста..
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36252843
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего не сворачивает или ничего не выводит ?

зачем сначала выбираешь а потом сворачиваешь ?
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36253224
Kristi_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего не сворачивает.Он должен одинаковые наименования свернуть, а их КолВо сложить. А он выводит все подрят...
А как нужно?Если можете подскажите, пожалуйста..
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36253647
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 . ну во первых надо убедиться что данные действительно одинаковые (и как объекты и как простые типы причем строки одинаковой длинны и расположения знаков в них)

2. несовпадение типов может быть... у тебя вот еденицы измерения есть строка а реально ты туда передаешь объект

3. у наименования (табличного) - тип ссылка а ты ему длинну ставишь

вобщем имхо куча несовпадений типов и может быть чего угодно
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36253840
Kristi_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в 1С можно скопировать содержимое справочника и вставить для всех моделей? Ну чтобы наименования были одинаковые???
Вот если я сворачиваю по единицеизмерения и колву ,то все правильно, а как по наименованию, то...
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36253875
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
винигрет в голове...

мухи (ссылки на элементы справочника) отдельно, котлеты (строки) отдельно... Если ссылки разные с одним наименованием можно сворачивать хоть до посинения...
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36253913
Kristi_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, конечно,может вам все это кажется легким и вы возмущены что я такие глупые вопросы задаю, но я первый раз пишу на 1С.Поэтому, пожалуйста, если можно поподробнее: где и что не так. Что нужно поменять???
В создании ТЗ я поменяла:
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Группа","Строка",50);
ТЗ.НоваяКолонка("Наименование","Справочник.Материал");
ТЗ.НоваяКолонка("ЕдиницаИзмерения", "Строка",50);
ТЗ.НоваяКолонка("КолВо","Число",10,2);
Но это ничего не дало...
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36254006
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на пальцах:

>>Вот если я сворачиваю по единицеизмерения и колву ,то все правильно, а как по наименованию, то...

Таблица:

СсылкаТовар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
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36254759
Kristi_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть вы хотите сказать, что (касательно моего случая) если у меня модели разные, а названия материалов одинаковые, 1С не свернет...
Нужно чтобы были одинаковые модели???

А мне нужно, чтобы я ввела разные модели, а он просуммировал одинаковые материалы и выдал название материала и общее кол-во.
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36254787
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно у вас база кривая... чтобы было как у вас возможно структура должна выглядеть так:

справочник с "группами", ему подчиненный справочник "модели", справочник "материалы" входящий в справочник "модели" как реквизит. Это даст возможность указывать одни и те же материалы (не по наименованию, а по ссылке что более "надежно") для разных моделей. Т.е.:

группа "А" - модель "АА" и в модели указан материал "ААА" кол = 1.
.............. - модель "АБ" и в модели указан материал "БББ" кол = 1.
.............. - модель "АС" и в модели указан материал "БББ" кол = 1.
.............. - модель "АД" и в модели указан материал "ССС" кол = 1.
группа "Б" - модель "БА" и в модели указан материал "ААА" кол = 3.
.............. - модель "ББ" и в модели указан материал "БББ" кол = 1.
.............. - модель "ББ" и в модели указан материал "ААА" кол = 1.
группа "С" - модель "СА" и в модели указан материал "ААА" кол = 2.

выбирая группы, модели и количество получим:

А/ААА/1
А/БББ/1
А/БББ/1
А/ССС/1
Б/ААА/3
Б/БББ/1
Б/ААА/1
С/ААА/2

сворачиваем:

А/ААА/1
А/БББ/2
А/ССС/1
Б/ААА/4
Б/БББ/1
С/ААА/2

все группы, модели и материалы - это ссылки на элементы справочников
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36254807
Kristi_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, сейчас попробую изменить
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36255008
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kristi_85, вобщем чтоб не писать многа букаф если необходимо свернуть по наименованию объектов то надо передавать в таблицу "объект.наименование" а если по самим объектам то передавать ссылки т.е. просто "объект"
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36255022
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще имхо не есть правильный метод

в случае если есть необходимость группировки по неким признакам объектов коим и является наименование (в вашем случае) то необходимо вынести этот признак в отдельный реквизит коим будет ссылка на другой справочник (скажем категории и т.д.) тогда и неоднозначностей не будет

в любом случае никгда не привязывайтесь к простым необъектным типам (строка или число) т.к. они неуникальны по своей природе и их значения непостоянны (максимум в 7ке - число "1" или "0" за неимением типа "булево")
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36255182
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если справочник единицы,как это часто бывает, подченен справочнику материалы - ничего он не свернет
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36255319
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leaf, угу... менять надо на единицы из классификатора :)
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36261228
Kristi_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное всем за помощь!!!
В итоге у меня получилось 3 справочника: Модель, Составляющие(Код, Название, ЕдиницаИзмерения,Количество) и Материал(Код, Наименование).Тип значения у "Название" поставила "СправочникМатериал".
Теперь код вот такой:
Процедура ВывестиОтчет()
Ном = 0;
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Название","Строка", 25);
ТЗ.НоваяКолонка("ЕдИзм", "Строка",20);
ТЗ.НоваяКолонка("КолВо","Число",10,2);
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Заголовок");

ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 цикл
СПРСост = СоздатьОбъект ("Справочник.Составляющие");
СПРСост.ИспользоватьВладельца(НаимМод);
СПРСост.ВыбратьЭлементы();
Пока СпрСост.ПолучитьЭлемент()=1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Название = СПРСост.ТекущийЭлемент().Название.Наименование;
ТЗ.ЕдИзм = СПРСост.ЕдИзм;
ТЗ.КолВо = СПРСост.КолВо*КолВо;
КонецЦикла;
КонецЦикла;

ТЗ.ВыбратьСтроки();
ТЗ.Свернуть("Название,ЕдИзм","КолВо");

Пока ТЗ.ПолучитьСтроку()=1 Цикл
Ном=Ном+1;
НаимДет = ТЗ.Название;
ДокИзм = ТЗ.ЕдИзм;
МатКолВо = ТЗ.КолВо;
Таб.ВывестиСекцию("Строка");
КонецЦикла;

Таб.ВывестиСекцию("Подвал");
Таб.Опции(0,0,0,0);
Таб.ТолькоПросмотр(1);
Таб.Показать();
КонецПроцедуры
И теперь все работает. Еще раз ОГРОМНОЕ СПАСИБО!!!
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36261250
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогали как лучше, получилось как всегда...
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36261334
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖ, главное чтоб клиент был рад :)
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36261338
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
радость его будет недолгой...
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36277849
Хитроглазый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖпомогали как лучше, получилось как всегда...
вроде всё правильно девушка, сделала, зачем пужаете?)
...
Рейтинг: 0 / 0
Не правильно работает метод "свернуть"
    #36277853
Хитроглазый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хитроглазый,
+ это я про базу, отчет - дело наживное
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Не правильно работает метод "свернуть"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]