Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Всем привет! Гууу ... вообще в дни не будние активность на сайте может меньше, но вынужден опять выходить на форум ... Ауууу... эта платформа действительно доведет до психоза. Короче ..даже не знаю с чего начать .. просто замучился ... опять по ерунде. Главное неоднократно слышал что должен бросить это дело ... да уж бросить.. тогда когда уже столько всего сверстал и внедрил. Ну я просто поражаюсь ... почему смотришь на сайтах статьи видео ролики... век широких возможностей .. где даже репетитор не нужен. Потому что есть интернет и вроде бы это дает возможность многому научиться и без репетитора. В особенности удобно смотреть видео уроки ... все наглядно и понятно ... казалось бы не должны быть проблемы... но все равно ...... все равно зараза... опять проблемы... даже при таких широких возможностей в наш век. И почему делаешь ровно то, что говориться в видео уроках но в итоги, на экране видео все работает а у тебя на первом же шагу останавливается. Так и хочется клавиатурой по монитору еб...ть. Ладно... извините .. просто опять достали эти проблемы. И опять на каждом сантиметре встречать препятствие и буквально каждый сантиметр приходиться аж отвоевывать. Главное по какой то х..не Поэтому сразу к делу... И скажу конкретно. Вот видео ролик: [необходимо зарегистрироваться для просмотра ссылки] Правда там говориться как это сделать в толстом клиенте. Но я лично нигде не нашел то же самое только для тонкого клиента. Речь о чем? Стандартным путем вытащить данные из рега накопления не проблема. Меня не устраивает то что опять навязывает платформа. Мне не нужен этот формат отчета который выползает когда делаешь через СКД и через конструктор. А нужно все сделать по своему усмотрению. Так что хотел опять избавиться от того что навязывает стандарт. Именно поэтому рыл усердно, но в основном натыкался на то как сделать по стандарту самый простой отчет рега накопления путем конструктора. И нигде не говориться о том, как тем же самым конструктором сделать любой отчет в любом нужном формате. Поэтому не охота тратить время на долгое разбирательство с этим конструктором и вдруг бац и наткнулся на этот видео ролик. Один единственный наверно в на просторах интернета. И подумал.. наконец то ... нашел что что нужно. Наконец то ...Но все затупилось на первом же шагу... на этой команде:
ТЗ_регаНакопления=РегистрыНакопления.ИмяРегаНакопления.Обороты(); //ТЗ_регаНакопления=РегистрыНакопления.ИмяРегаНакопления.Обороты(Дата_Начало,Дата_Конец); Сообщить(ТЗ_регаНакопления.Количество()); // В обоих случаях ничего не делает. А выдает НОЛЬ! Хотя запись в реге накопления НЕ ПУСТО!!!!!
Прошу вас ... умоляю ... объясните... ЧТО ЭТО ТАКОЕ! И извините за опять за речи ... рассчитываю на Ваше понимание. Потому что действительно .. вроде век технологий не все равно топишься на одном месте ... по каким то опять пустякам. Буду очень притязателен! Как никогда..
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Gigi @ Сегодня, 11:13
, Ладно ... извините за эмоциональные слова... Еще раз ИЗВИНИТЕ! Тогда скажу по другому. И думаю сделать по другому, что бы зависит только от того что нужно. Т.е. иметь более свободное поле для действий ... да хоть пустить строки отчета не по горизонтали и вертикали, а по диагонали. Или и вовсе данные текста отчета вывести вниз головой .. образно говоря. Т.е. делать ВСЕ ЧТО УГОДНО!!!! А не то что навязывается системой . Понятное дело что наверняка есть много возможностей но вникать долго. Поэтому решил иначе. Что нужно для этого? Нужен код списка промежутка периода. Ну на пример промежуток Даты1: 01.01.2018 и Даты2: 01.04.2018 Нужен список всех записей на пример в указанном промежутке. При чем отфильтрованный от присутствия одинаковых значений отчетного месяца. На пример документы формируются в месяц один раз. Поэтому каждый документ в реге накопления имеет одинаковое число... условно 28-ое. А год и месяц в рег записывается в зависимости от года и месяца отчета. Т.е. для записи в рег накопления дата проведения документа в моем случае не имеет никакого значения. Потому что реквизит период в обработке проведения получает сгенерированную дату согласно отчетному месяцу. Кроме того в реге накопления есть измерение с типом строка: "ОтчетныйМесяц". Который формируется синтезом:
Строка(Месяц)+" "+Строка(Год)+" г."
Так вот, нужен список значений именно этого измерения на пример на указанный промежуток даты. И не просто список, а список с фильтром отсутствия одинаковых значений измерения: "ОтчетныйМесяц". Вот что нужно. Остальное думаю можно самому сделать. Именно это уже даст возможность самому решать что и как сделать. И не от чего не зависть а зависит только от себя. Ладно... Еще раз извините ... Буду признателен!
Группа: Местный
Сообщений: 637
Спасибо сказали: 174 раз
Рейтинг: 139
Цитата(Gigi @ 21.04.18, 12:13)
Ну я просто поражаюсь ... почему смотришь на сайтах статьи видео ролики... век широких возможностей .. где даже репетитор не нужен. Потому что есть интернет и вроде бы это дает возможность многому научиться и без репетитора.
Научиться может только тот, кто хочет учиться. А тот кто хочет готовых рецептов - должен страдать.
#define private public enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Цитата(andr_andrey @ 23.04.18, 8:39)
Научиться может только тот, кто хочет учиться. А тот кто хочет готовых рецептов - должен страдать.
Да какие готовые рецепты В том и дело что учимся и мучимся на свою голову. Поэтому все таки хотел продолжить тему ..
Цитата(Vofka @ 23.04.18, 8:21)
читайте про запросы.
Да читал я ... просто указанный в ролике способ очень удобен .. и охота таким путем. А не другим. Короче ... вынужден продолжить тему.... потому что вопрос не решен. Вот код:
&НаСервере Процедура Тест(РегистрНакопленияИмя,ДатаНачало,ДатаКонец) ТЗ_Обороты=РегистрыНакопления[РегистрНакопленияИмя].Обороты(ДатаНачало,ДатаКонец,,"Измерение1","Ресурс1"); Для Каждого Строка Из ТЗ_Обороты Цикл Сообщить(Строка.Измерение1); // Тут без проблем Сообщить(Строка.Ресурс1); // А тут выдает ошибку и пишет: "Поле Ресурс1 не найдено". Хотя ресурс с таким именем создан! КонецЦикла; КонецПроцедуры
Ну объясните мне пожалуйста ... почему ну никак не найдет этот долблённый е..ный ресурс. ПОООО-ЧЕЕЕЕ-МУУУУУ!!!! Хочеться просто выть от ярости! Буду признателен!
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Gigi @ 03.05.18, 18:32)
Ну объясните мне пожалуйста ... почему ну никак не найдет этот долблённый е..ный ресурс.
Потому что надо научить себя читать синтаксис-помощник, и/или смотреть в отладчик на таблицу, а не методом тыка. В результирующей таблице, для регистров накопления, колонки ресурсов имеют другие имена. Дальше сами разбирайтесь.
Сообщение отредактировал logist - 03.05.18, 20:15
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
logist @ Вчера, 20:14
, Я уже разобрался ... до совета смотрел в СП. Что делать не люблю из за скупости изложения информации. Но в данном случае оно пошел на пользу Нужно было вот так
&НаСервере Процедура Тест(РегистрНакопленияИмя,ДатаНачало,ДатаКонец) ТЗ_Обороты=РегистрыНакопления[РегистрНакопленияИмя].Обороты(ДатаНачало,ДатаКонец,,"Измерение1","Ресурс1"); Для Каждого Строка Из ТЗ_Обороты Цикл Сообщить(Строка.Измерение1); Сообщить(Строка.Ресурс1Приход); // или Сообщить(Строка.Ресурс1Расход); КонецЦикла; КонецПроцедуры
Так нормально заработало. Но в таком случае уже другие вопросы. 1) Почему в видео ролике было без частиц: "Приход\Расход". Там никакой ошибки не было .. неужели из-за тонкий-толстый клиент? Команды ведь одинаковые. 2) Ну ладно можно и с частицами: "Приход\Расход". Но тогда как вытащить любые данные. Вне зависимости от прихода или расхода. Если не трудно код пожалуйста. Буду признателен!
Тип: Дата; МоментВремени; Граница. Момент времени, начиная с которого необходимо получить обороты. Если параметр не указан, то обороты будут получены начиная с момента ведения базы данных. Если в качестве параметра передана Дата или МоментВремени, то обороты за указанную дату (момент времени) будут включены в результирующую таблицу значений. <КонецПериода> (необязательный)
Тип: Дата; МоментВремени; Граница. Момент времени, определяющий конец периода за который необходимо получить обороты. Если параметр не указан, то обороты будут получены до самого позднего движения регистра. Если в качестве параметра передана Дата или МоментВремени, то обороты за указанную дату (момент времени) будут включены в результирующую таблицу значений. <Отбор> (необязательный)
Тип: Структура. Структура, содержащая набор значений измерений регистра, по которым надо отбирать обороты. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение. Если параметр не указан, то отбор не используется. <Измерения> (необязательный)
Тип: Строка. Список измерений, для которых надо разворачивать обороты. Строка, содержащая имена измерений, разделенные запятыми. Если параметр не указан или указана пустая строка, то обороты будут сформированы по всем измерениям. Значение по умолчанию: Пустая строка. <Ресурсы> (необязательный)
Тип: Строка. Список ресурсов, для которых надо получить обороты. Строка, содержащая имена ресурсов, разделенные запятыми. Если параметр не указан или указана пустая строка, то обороты будут сформированы по всем ресурсам. Значение по умолчанию: Пустая строка. Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Получает обороты регистра накопления за заданный период времени. Есть возможность фильтрации по значениям измерений. Возвращает таблицу значений, содержащую колонки с измерениями, указанными в параметре Измерения, и по две колонки на каждый ресурс, указанный в параметре <Ресурсы>. Названия колонок для ресурсов формируются следующим образом: для регистров остатков: "<Имя ресурса>Приход" и "<Имя ресурса>Расход" или "<ИдентификаторРесурса>Receipt" и "<ИдентификаторРесурса>Expense"; для регистров оборотов: "<Имя ресурса>".
Остатки = РегистрыНакопления.Остатки; Фильтр = Новый Структура(); Фильтр.Вставить("Номенклатура", ВыбНоменклатура); Фильтр.Вставить("Склад", ВыбСклад); ТабОборотов = Остатки.Обороты(ДатаНач, ДатаКон, Фильтр, "Номенклатура,Склад", "Количество");
Gigi @ Сегодня, 13:22
, В особенности этот фрагмент прикалывает
Цитата
Описание: Получает обороты регистра накопления за заданный период времени. Есть возможность фильтрации по значениям измерений. Возвращает таблицу значений, содержащую колонки с измерениями, указанными в параметре Измерения, и по две колонки на каждый ресурс, указанный в параметре <Ресурсы>. Названия колонок для ресурсов формируются следующим образом: для регистров остатков: "<Имя ресурса>Приход" и "<Имя ресурса>Расход" или "<ИдентификаторРесурса>Receipt" и "<ИдентификаторРесурса>Expense"; для регистров оборотов: "<Имя ресурса>".
А как вытащить "данные для регистров остатков" при чем и по приходу и по расходу. Почему не написано? Вопрос опять открыт... поэтому пробовал опять методом тыка так ..
РесурсПриходРасход
Но ругается. Так что вопрос открыт. Не смотря на СП. Так как вытащить данные вне зависимости от приход-расхода... ВСЕ ДАННЫЕ!
Группа: Местный
Сообщений: 637
Спасибо сказали: 174 раз
Рейтинг: 139
Gigi @ Сегодня, 14:28
, Если регистр накопления имеет Вид = Остатки, тогда вам будут доступен стандартный реквизит "ВидДвижения" (Приход/Расход), с помощью которого вы сможете высчитывать отдельно приход и расход. Если этого будет недостаточно, тогда в виртуальных таблицах Остатки и ОстаткиИОбороты на каждый ресурс будет два реквизита РесурсПриход и РесурсРасход. Это всё и даже больше описано в книге по 1С (обычно в комплекте с 1С) или доступно пытливому уму опытным путём, попробовав в конфигураторе.
#define private public enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!