|   |   | 
| 
 | v7: Итог оборотного регистра в табличную часть | ☑ | ||
|---|---|---|---|---|
| 0
    
        Gangar 24.10.12✎ 02:41 | 
        Доброго дня, уважаемые. 
  Дано - ТиС Украина, доработанная база. В данной конфигурации изъявили желание сделать еще и зарплатный модуль. Т.к. оплата сдельно-премиальная в зарплатную ведомость надо передать итог регистра за указанный период. В регистре есть измерение Отдел и ресурс Доход (именно его и надо передать, но так, что бы он соответствовал отделу сотрудника). ТЧ вида ФИО . Отдел . Оборот . Ставка . Премия . Итого . Вопрос - как? Запросом, последующей выгрузкой в ТЗ и заполнением табличной части из ТЗ? Прямым запросом? ... | |||
| 1
    
        zladenuw 24.10.12✎ 02:43 | 
        а чего сразу в ТЧ не пихать. а ты знаешь прямые запросы ?     | |||
| 2
    
        Gangar 24.10.12✎ 02:48 | 
        (1) не знаю прямых - но есть время и вдохновение.     | |||
| 3
    
        zladenuw 24.10.12✎ 02:49 | 
        прямые только тогда когда обычными долго и уныло. пока попробуй сделать так. попробуй формех. а потом уже лезь в рпямые     | |||
| 4
    
        zladenuw 24.10.12✎ 02:50 | 
        остальное понятно или мрак ?     | |||
| 5
    
        Изучаю1С8 24.10.12✎ 02:50 | 
        (3) И на кой тут формекс?     | |||
| 6
    
        Gangar 24.10.12✎ 02:52 | 
        (4) судя по времени на часах - мрак.
  попробую на свежую голову завтра утром еще раз осмыслить =) но, если можешь указать направление - буду благодарен. | |||
| 7
    
        zladenuw 24.10.12✎ 02:53 | 
        (5) человек пишет про прямые запросы. может и слухом не знает про формех. а тебе только обгадить     | |||
| 8
    
        zladenuw 24.10.12✎ 02:55 | 
        (6) ты думай, пробуй, если че форум будет :)     | |||
| 9
    
        Изучаю1С8 24.10.12✎ 02:57 | 
        Прямые гораздо нужнее формекса если уж на то пошло.     | |||
| 10
    
        zladenuw 24.10.12✎ 03:01 | 
        (9) а ты по теме ТС. ответ не даешь. я ему про общие развитие. что надо будет для клюшки.     | |||
| 11
    
        Gangar 24.10.12✎ 03:01 | 
        (9) вот и я подумываю, что их изучение мне в дальнейшем пригодиться.     | |||
| 12
    
        Gangar 24.10.12✎ 03:02 | 
        не ругайтесь, все будет хорошо. не подскажете направление поиска - найду сам, пусть и позже.     | |||
| 13
    
        zladenuw 24.10.12✎ 03:03 | 
        (11) ты вообще где работаешь ?
  формех, прямые запросы. для задротов. а вообще 1с8.х учи ! | |||
| 14
    
        zladenuw 24.10.12✎ 03:06 | 
        а вообще пробовать, читать. форум так. иногда совет. иногда сомнение по поводу решения. ты же програмер у тебя 1 млн вариантов решения. и все будут верные. если клиент видеть то что ему надо, пофиг как оно сделано. только со своим опытом, будешь понимать. какой ты был раньше нуб     | |||
| 15
    
        Gangar 24.10.12✎ 03:32 | 
        (13) прошу пощения, 1С начал учить 3 месяца назад. с написания отчетов. 
  в данный момент облазив многие форумы не увидел примеров с возможностью отбора Дохода по Отделу. есть предположение, что должно быть как то так: Функция Заполнить() Перем Запрос, ТекстЗапроса; УдалитьСтроки(); Спр = СоздатьОбъект("Справочник.Сотрудники"); Таб = СоздатьОбъект("ТаблицаЗначений"); Рег = СоздатьОбъект("Регистр.Продажи"); Таб.НоваяКолонка("ФИО"); Таб.НоваяКолонка("Отдел", "Справочник.Отделы"); Таб.НоваяКолонка("Ставка"); Таб.НоваяКолонка("Оборот"); Спр.ИспользоватьДату(ДатаДок); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Таб.УдалитьСтроки(); Рег.ИспользоватьПериод(ДатаГод(ДатаДок), ДатаМесяц(ДатаДок)); Таб.НоваяСтрока(); Таб.ФИО = Спр.ТекущийЭлемент(); Таб.Отдел = Спр.Отдел; Таб.Ставка = Спр.Ставка; Таб.Оборот = Рег.СводныйИтог(Таб.Отдел, "Доход"); Таб.ВыбратьСтроки(); Пока Таб.ПолучитьСтроку() = 1 Цикл НоваяСтрока(); Сотрудник = Таб.ФИО; Отдел = Таб.Отдел; Ставка = Таб.Ставка; Оборот = Таб.Оборот; КонецЦикла; КонецЦикла; КонецФункции Но на данном этапе ругается, что Таб.Оборот = Рег.СводныйИтог(Таб.Отдел, "Доход"): Неверный идентификатор ресурса! | |||
| 16
    
        Изучаю1С8 24.10.12✎ 03:34 | ||||
| 17
    
        Gangar 24.10.12✎ 03:34 | 
        (15) ой, переменные там не нужны, игрался с запросами.     | |||
| 18
    
        zladenuw 24.10.12✎ 03:34 | 
        а просто запрос     | |||
| 19
    
        Gangar 24.10.12✎ 03:54 | 
        Функция Заполнить() 
  УдалитьСтроки(); Спр = СоздатьОбъект("Справочник.Сотрудники"); Таб = СоздатьОбъект("ТаблицаЗначений"); Рег = СоздатьОбъект("Регистр.Продажи"); Рег.ИспользоватьПериод(ДатаГод(ДатаДок), ДатаМесяц(ДатаДок)); Таб.НоваяКолонка("ФИО"); Таб.НоваяКолонка("Отдел"); Таб.НоваяКолонка("Ставка"); Таб.НоваяКолонка("Оборот"); Спр.ИспользоватьДату(ДатаДок); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Таб.УдалитьСтроки(); Таб.НоваяСтрока(); Таб.ФИО = Спр.ТекущийЭлемент(); Таб.Отдел = Спр.Отдел; Таб.Ставка = Спр.Ставка; Таб.ВыбратьСтроки(); Пока Таб.ПолучитьСтроку() = 1 Цикл НоваяСтрока(); Сотрудник = Таб.ФИО; Отдел = Таб.Отдел; Рег.СводныеИтоги(Отдел); Оборот = Рег.Доход; Ставка = Таб.Ставка; КонецЦикла; КонецЦикла; КонецФункции в таком варианте начало заполнять ТЧ, но совсем не теми цифрами, которые я получаю если делаю запрос. а из запроса не могу передать значение в ТЧ. | |||
| 20
    
        zladenuw 24.10.12✎ 03:55 | 
        читай про запрос. получай все что тебе надо. ты тут просто берешь обороты за период. по этому бред     | |||
| 21
    
        zladenuw 24.10.12✎ 03:58 | 
        ну или так
  Фильтрация движений и итогов РегТовары = СоздатьОбъект("Регистр.Товары"); 1. Метод УстановитьФильтр Пример: //выбрать все движения по данному складу за период РегТовары.УстановитьФильтр(,ТекСклад); РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон); Пока РегТовары.ПолучитьДвижение()=1 Цикл | |||
| 22
    
        zladenuw 24.10.12✎ 03:59 | 
        (16) смотри ссылку     | |||
| 23
    
        Gangar 24.10.12✎ 04:01 | 
        (16),(22) за ссылку спасибо, читал.     | |||
| 24
    
        zladenuw 24.10.12✎ 04:02 | ||||
| 25
    
        zladenuw 24.10.12✎ 04:03 | 
        и тут чепуха
  Спр.ИспользоватьДату(ДатаДок); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Таб.УдалитьСтроки(); Таб.НоваяСтрока(); Таб.ФИО = Спр.ТекущийЭлемент(); Таб.Отдел = Спр.Отдел; Таб.Ставка = Спр.Ставка; Таб.ВыбратьСтроки(); Пока Таб.ПолучитьСтроку() = 1 Цикл НоваяСтрока(); Сотрудник = Таб.ФИО; Отдел = Таб.Отдел; Рег.СводныеИтоги(Отдел); Оборот = Рег.Доход; Ставка = Таб.Ставка; КонецЦикла; КонецЦикла; | |||
| 26
    
        zladenuw 24.10.12✎ 04:04 | 
        получаешь сначала всех сотрудников. загоняешь в список. а не в выборке. это раз.     | |||
| 27
    
        zladenuw 24.10.12✎ 04:04 | 
        так в регистре расчет на отдел или з.п. для сотрудника хранится в отделе ?     | |||
| 28
    
        zladenuw 24.10.12✎ 04:05 | 
        (0) и ты вообще откуда, город ?     | |||
| 29
    
        Gangar 24.10.12✎ 04:11 | 
        (27) в документе вручную должно устанавливаться значение премии. формат ТЧ я в начале привел.
  грубо говоря по кнопке идет заполнение ТЧ - ФИО, Отдел, Ставка, Оборот. все, кроме оборота получаю. оборот - странные цифры, которые никак не стыкуются с тем что есть на самом деле. далее СамыйБольшойНачальник проставляет значение премии в % и идет списание с регистра Деньги на регистр Зарплата, откуда в дальнейшем списываются деньги выданные на руки. (28) Днепропетровск | |||
| 30
    
        zladenuw 24.10.12✎ 04:12 | 
        оборот. это то что было за период. может тебе остаток нужно. или скинь конфу гляну. я уже не трезвый. туплю где то     | |||
| 31
    
        zladenuw 24.10.12✎ 04:12 | 
        (29) если в отчете видишь то что нужно. тогда смотри там.     | |||
| 32
    
        zladenuw 24.10.12✎ 04:13 | 
        (29) в карточку добавь. а то инкогнито. типо боишься чето     | |||
| 33
    
        Gangar 24.10.12✎ 04:14 | 
        (27) во всех Расходных есть реквизит Отдел - по ним идет заполнение значение регистра Доход. 
  отчет по работе отдела я уже сделал, а вот тут что-то затупил. если делать запросом, то как должна выглядеть передача значения в ТЧ? Оборот = Запрос.СуммаДоход ? | |||
| 34
    
        zladenuw 24.10.12✎ 04:15 | 
        ну так то что он должен получить. если подставить доход то оно ? уже начала 4. с утра на работу. спи иди!     | |||
| 35
    
        Gangar 24.10.12✎ 04:15 | 
        (32) Спасибо за напоминание, добавил. Как то сразу забыл это сделать.     | |||
| 36
    
        Gangar 24.10.12✎ 04:17 | 
        (34) Да, таки вы правы. На свежую голову быстрее прийдёт осознание ошибки. Спасибо.     | |||
| 37
    
        zladenuw 24.10.12✎ 04:18 | 
        точнее осознаешь все что было за сегодня. так лучше. а то Ёбе...шся. сегодня, а завтра тю ты. куйня и за час     | |||
| 38
    
        ADirks 24.10.12✎ 08:39 | 
        > прямые только тогда когда обычными долго и уныло.
  Т.е. всегда. Кто знает SQL, тому дико смотреть на 1С-ные запросы и прочие извращения. | |||
| 39
    
        Gangar 25.10.12✎ 04:07 | 
        В конечном итоге получилось так
  Функция Заполнить() Если ПустоеЗначение(выбОтдел) = 1 Тогда Предупреждение("Выберите отдел для расчета ЗП.") СтатусВозврата(0); Иначе УдалитьСтроки(); ТОб = СоздатьОбъект("ТаблицаЗначений"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с ВыбНачПериода по ВыбКонецПериода; |Фирма = Регистр.Продажи.Фирма; |Отдел = Регистр.Продажи.Отдел; |Доход = Регистр.Продажи.Доход; |Функция ДоходСумма = Сумма(Дохохд); |Группировка Отдел; |Условие (Отдел в выбОтдел); |Условие (Фирма = ФирмОтбора); |"; Запрос.Выполнить(ТекстЗапроса); Запрос.Выгрузить(ТОб); ТОб.Свернуть("Отдел", "ДоходСумма") //ТОб.ВыбратьСтроку(); //Проверка ТОб.ВыбратьСтроки(); ТОб.ПолучитьСтроку(); ДоходОтдел = ТОб.ДоходСумма; Спр = СоздатьОбъект("Справочник.Сотрудники"); Спр.ИспользоватьДату(ДатаДок); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.Отдел = выбОтдел Тогда НоваяСтрока(); Сотрудник = Спр.ТекущийЭлемент(); Ставка = Спр.Ставка; Отдел = выбОтдел; Оборот = ДоходОтдел; КонецЕсли; КонецЦикла; КонецЕсли; КонецФункции | |||
| 40
    
        Karambol 25.10.12✎ 05:53 | 
        ЗагрузитьТабличнуюЧасть может попробовать использовать?     | |||
| 41
    
        Gangar 25.10.12✎ 12:40 | 
        (40) а разве для этого не надо будет заполнять еще одну ТЗ, в которой будут записи из справочника?     | |||
| 42
    
        Ёпрст гуру 25.10.12✎ 12:44 | 
        (39) группировка Отдел в тексте запроса не нужна, это раз, выгрузка в тз и свертка этой тз - тем более, это два.     | |||
| 43
    
        Gangar 25.10.12✎ 13:19 | 
        (42) Спасибо, лишнее убрал.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |