![]() |
[quote=Ирли Бёрд;47763895]Указан проект или не указан, не суть важно. Важно проектировать запрос так, чтобы он не сломался в ситуации, когда проект не указан (а такие ситуации могут произойти).[/quote] Да! Я поняла почему так нужно сделать. Но ошибка возникает из-за того, что в документе не указан проект? |
Мне не понятна последовательность чисел, которые указываются в ошибке. |
Добавь вот это в код: Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; [b]ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ, 1, 0); ТЗ.ВыбратьСтроку(); [/b] Так ты сможешь посмотреть результат запроса, и станет понятен ответ на твой вопрос. |
студент на 7.7?? препод старовер видать))) |
124-user1C > Препод умный человек. |
[quote=Ирли Бёрд;47763895]Указан проект или не указан, не суть важно. Важно проектировать запрос так, чтобы он не сломался в ситуации, когда проект не указан (а такие ситуации могут произойти).[/quote] Поток демагогии и пафоса продолжался которую неделю... |
(125) умный бы на dbase IV задания давал, чеуж...))) |
А знаете! Этот мужик, который составлял задачник, он очень умный! И семерку, скорее всего, знает от и до. Судя по задачам, которые я не все могу решить, он просто асс! Например у него есть задание сделать отчет, который бы выводил данные без запуска 1с, на основании файлов dbf. Мне такое даже в голову не приходило. Из того, что у меня так и не получилось... Я никогда не работала с таблицами значений на форме до этой ситуации. У меня не получилось вывести результаты по колонкам в ТЗ на форму. У меня не получилось вывести результат в ТЗ при нескольких группировках. У меня не получилось вывести в первый столбец наименование группы (ну или как это назвать, когда группировка по дням, например, в первой колонке должна быть указана дата, если по месяцам, то месяц). У меня не получилось создать список значений и выгрузить данные в отдельный файл, а потом загрузить эти данные из файла. При чем у меня ошибка явно в формировании самого списка значений. Еще неделю я бабушка-одиночка. Надо бы успеть за это время! И куча еще чего... Я вообще в шоке от возможностей работы с ТЗ. И вот правда! Прям чувствую, как мой усыхавший было мозг, увеличивается в размере! :) |
128-tutsi > "Например у него есть задание сделать отчет, который бы выводил данные без запуска 1с, на основании файлов dbf. Мне такое даже в голову не приходило." - так не получится. Отчет - работает в среде запущенной 1С. Без 1С отчет работать не будет. если речь идет о том. что отчет формировался бы БЕЗ ПОКАЗА окна 1С - то это тривиально - при запуске 1С В ПриНачалеРаботыСистемы() - выполняем запуск отчета (который не может быть показан. а значит автоматом д.б. сохранен в вижд, который м.б. открыть вне 1С - в эксель например). а откуда уж отчет тянет данные из каки-то сторонних дбф или из базы - не суть важно. . если речь идет о неком НЕ 1C-ном отчете - который тянет данные из файлов дбф базы 1С - то во первых такой отчет в общем случае работать не будет ибо база может быть скульная, или отчет будет похитрее чем просто из дбф. Можно еще тупо по ОЛЕ извне подключиться к клюшкам и по оле запустить построение отчета. по всякому можно. из краткого упоминания "изврата" - хз понять что там имел в виду препод |
128-tutsi > "У меня не получилось вывести результаты по колонкам в ТЗ на форму. " - в заисимости от данных динамически определяешь колонки ТЗ, например, Для ы=1 по 11 Цикл ТЗ.НоваяКолонка("Месяц"+ы); КонецЦикла; . а потом пихаешь в колонки нужные данные |
128-tutsi > "У меня не получилось создать список значений и выгрузить данные в отдельный файл, а потом загрузить эти данные из файла. При чем у меня ошибка явно в формировании самого списка значений." СЗ = СоздатьОбъект("СписокЗначений"); СЗ.ДобавитьЗначение(КакоеТоЗначение1,СтрокаВизуальноеПредставлениеКакогоТоЗначения1); СЗ.ДобавитьЗначение(КакоеТоЗначение2,СтрокаВизуальноеПредставлениеКакогоТоЗначения2); далее см. ЗначениеВФайл и ЗначениеИзФайла |
128-tutsi > "Прям чувствую, как мой усыхавший было мозг, увеличивается в размере! :)" - потому как мозг был усохший, морщинистый, много извилин, думательный. а тут егор стало распирать как воздушный шарик, извилины разглаживаются, думалка не работает.. ;-) |
128-tutsi > " У меня не получилось вывести в первый столбец наименование группы (ну или как это назвать, когда группировка по дням, например, в первой колонке должна быть указана дата, если по месяцам, то месяц)." - не получилось - это сильно обще... что именно не получилось? знаешь все буквы, но не смогла прочитать слово? помогает тупое чтение синтаксПомощника - узнаешь много методов. которые оказывается есть... . например как-то так, типа Пока Запрос.Группировка(1)=1 Цикл ЗначениеГруппировки = Запрос.ЗначениеУпорядочивания(1,) ТЗ.НоваяСтрока(); ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,1,ЗначениеГруппировки) КонецЦикла; |
[quote=Сергей Че;47800617]если речь идет о неком НЕ 1C-ном отчете - который тянет данные из файлов дбф базы 1С [/quote] Именно НЕ 1С-ный отчет и для дбф базы. |
[quote=Сергей Че;47800617]а потом пихаешь в колонки нужные данные[/quote] Пихаю. В печатную форму получается вывести. А в ТЗ на форму не отображается. Синтаксических ошибок не находит, но, чую, где-то с запятыми засада. |
[quote=Сергей Че;47800643]например как-то так, типа[/quote] А в процедуру ПриОткрытии эту строку нужно прописывать как-то? |
[quote=Сергей Че;47800643]Пока Запрос.Группировка(1)=1 Цикл ЗначениеГруппировки = Запрос.ЗначениеУпорядочивания(1,) ТЗ.НоваяСтрока(); ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,1,ЗначениеГру ппировки) КонецЦикла;[/quote] При таком раскладе пишет "Неверный номер упорядочивания ЗначениеГруппировки = Запрос.ЗначениеУпорядочивания(1);" |
ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,1,ЗначениеГруппировки); ERT(116)**: Номер за пределами значения! |
135-tutsi > ну ты же код свой не показываешь. тут собрались ведь исключительно телепаты и бабыванги. хз что там у тебя. самая простейшая ошибка когда вроде вен написано, а ВТЗ ничего не выводится - тупо пропустила ТЗ.НоваяСтрока(); - по коду идет установка значений в ТЗ - но строк добавляемых нет. уходит в никуда. |
134-tutsi > ну так это к 1с имеет весьма отладенное отношение. не зная что в каой ДБФ лежит - хрен ты знаешь что ткуда тянуть. чтобы узнать что где лежит - тебе НЕ 1Сными средствами придется разбирать словарь данных 1cv7.dв - парсить его, строить модель данных по распарсенным данным и в соответствии с построенной моделью тянуть данные из нужных ДБФ - это далеко задача не начального уровня. и не среднего. и вообще не 1Сная. в этоq задаче вы или что-то не договариваете или не так транслируете здесь задачу. |
137-tutsi > здесь налажал. тут смысл в том. чтобы в коде получить имя группировки (например, День/Месяц/Квартал) - и сделать ТЗ колонку с таким идентификатором. . обычно когда ты строишь запрос - ты знаешь какая группировка у тебя используется явно То есть в коде написано Группировка Месяц; . Если группировка зависит от периодичности - выбранной юзером на форме например (день/месяц/....) то имя группировки - ты тоже знаешь - имя сидит в какой-то переменной которую ты используешь при формирвоании текста запроса. . дальше ты используешь имя группировки периодичности в качестве идентфикатора колонки. и делаешь что надо... . 1. получить из итогов запроса перечень всех периодов 2. в цикле по перечню всех периодов создаешь колонки с идентфикаторами периодов 3. делаешь что надо с распихиванием даннных по колонкам-строкам. п.2,3 могут варьироваться в зависимости от конкретности задачи. |
задачи не скажу совсем чтобы уж новичковые, надо иметь какое-то представление о возможностях программрирования 1С. надо получить более подробные пояснения ПО КОНКРЕТНОЙ задаче/проблем - стучитесь или пишите здесь конкретную задачу/проблему. Чем более общий вопрос - тем более общий ответ. |
[quote=Сергей Че;47802167]задачи не скажу совсем чтобы уж новичковые, надо иметь какое-то представление о возможностях программрирования 1С.[/quote] Ну, насколько мне разъяснили, этому задачнику мильён лет. И писался он с расчетом на сквозное обучение на всех курсах. В нем не только 1с-овские задачи. Я ж чего так стараюсь... Следующий учебный год племянник будет учиться. Не хочется второй раз на одни и те же грабли наступать. [quote=Сергей Че;47802163]ну ты же код свой не показываешь. тут собрались ведь исключительно телепаты и бабыванги. хз что там у тебя[/quote] Та мне ж самой хочется! Уже если что-то не получится, выставлю код и буду просить помощь зала. А вообще я поняла, что годы моего "программирования" в 1С - это был детский сад. Ни одной интересной задачи не было. Тут с одними запросами головомороки полным полно. А я... Печатные формочки делала, небольшие изменения в программу... Отчеты - вот сила мысли! :) |
143-tutsi > ну, обычно здесь и на мисте если ты выкладываешь код проблемный - обычно не спешат сразу решение давать. а подталкивают в нужном направлении ;-) так что не баись. |
Уважаемые суперзнатоки! У меня вопрос! Берем нашу первую задачу и усложняем ее. Есть функции |Функция РеализацияП1 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П1""); и тут еще нужно указать, что склад "1" |Функция РеализацияП2 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П2""); и тут еще нужно указать, что склад "1" |Функция РеализацияП1 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П1"");и тут еще нужно указать, что склад "2" |Функция РеализацияП2 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П2""); и тут еще нужно указать, что склад "2" |Функция РеализацияП3 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П3""); |Функция ВозвратП1 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П1""); |Функция ВозвратП2 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П2""); |Функция ВозвратП3 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П3""); Как это правильно реализовать? |
Пишу так ((Проект.Наименование = ""1"") и (Склад.Наименование = ""1"")); Как добавить еще склад 3 к этой функции? |
Писать отдельную функцию и потом их суммировать? |
Трэш и угар полнейший. |
146-tutsi > "Как добавить еще склад 3 к этой функции?" нет такой операции "еще". есть операции И, Или, Не. |
если в том же стиле трэша и угара то примерно так (Проект.Наименование = ""1"") и ((Склад.Наименование = ""1"") или (Склад.Наименование = ""3"")) |
Представь что проектов будет 30 и складов штук 8. так и будешь функции множить? |
Чисто на подумать на досуге загнать список складов в СЗ загнать список проектов в СЗ Условие(Проект в СписокПроектов) Условие(Склад в СписокСкладов) Функция Продажа = Сумма(СуммаРеализация); Функция Возврат = Сумма(СуммаРеализация); Группировка Склад; Группировка Проект; далее тупо обходить результаты запроса и суммировать данные по нужным условиям. |
Если в запросе несколько Условие - они соединяются как "И" |
для тупой учебной задачи - покатит как в 145. в реальности - так никто не делает . как говорится . "Недоделанные отчеты - это не беда. Главное - доделывайте детей. А то недоделанные дети вырастают и приносят недоделанные отчеты. И никак не разорвать этот порочный круг" . большой смайл. |
главное, что в ТЗ видимо все получилось. бо направленеи вопросов резко изменилось... |
[quote=Сергей Че;47805264]Представь что проектов будет 30 и складов штук 8. так и будешь функции множить?[/quote] Та я уже в страшном сне вижу семерку! Кому она вообще нужна? НО! Задание есть, его нужно выполнить... |
[quote=Сергей Че;47805260](Проект.Наименование = ""1"") и ((Склад.Наименование = ""1"") или (Склад.Наименование = ""3""))[/quote] Ну, Семен Семеныч! Я ж так и делаю! Только скобку одну не поставила. И он у меня выругался нецензурно!! |
[quote=Сергей Че;47805288]главное, что в ТЗ видимо все получилось. бо направленеи вопросов резко изменилось...[/quote] Та это разные задания. С ТЗ все получилось, кроме даты в первой колонке и результатов в последней строке. |
"С ТЗ все получилось, кроме даты в первой колонке и результатов в последней строке." . - Правда ли что вы виграли в спортлото миллион рублей? - Правда, ноне в спортлото, а в карты, и не миллион, а квартиру, и не выиграл, а проиграл... |
[quote=Сергей Че;47805668]- Правда ли что вы виграли в спортлото миллион рублей? - Правда, ноне в спортлото, а в карты, и не миллион, а квартиру, и не выиграл, а проиграл...[/quote] Ну кроме тех задач, которые я сюда кидаю, я еще ж и другие решаю. |
Текущее время: 09:19. Часовой пояс GMT +3. |