Расчет итогов по группам справочника в прямом запросе.

Публикация № 64166

Разработка - Практика программирования

Рассмотрен алгоритм расчета итогов по группам справочника при помощи рекурсивных запросов.

            Часто заказчики хотят, чтобы быстрый отчет на прямых запросах выводил итоги по группам справочников. Например, посчитать сумму проданного товара за период с группировкой по номенклатуре. Да еще и по контрагенту иногда. И обязательно с итогами по группам. И обязательно результаты должны быть выведены в том порядке, как это обычно делает 1С. В данном примере, пожалуй, проще было бы отказаться от прямых запросов и реализовать его стандартными средствами. Но отчеты бывают всякие. Сложными и медленными для реализации стандартными средствами. В этой статье рассмотрю и опишу свой вариант алгоритма расчета итогов по группам.

            Хочу сразу заметить, что все запросы будут рассчитаны на MS SQL-Server 2005, т.к. он предоставляет больше функционала (будут использованы оконные функция, common table expression). Примеры будут приведены для стандартной ТиС с использованием 1С++.

            Итак. На входе имеем запрос, возвращающий сумму проданного за май 2009-ого года товара и ссылку на товар.

       select $t.Номенклатура tov,sum($t.Сумма) summa 

       from $ДокументСтроки.Реализация t (nolock)

       inner join _1sjourn jj (nolock) on jj.iddoc=t.iddoc

       where jj.closed&1=1

             and jj.date_time_iddoc between '20090501' and '20090531Z'

       group by $t.Номенклатура

            Нам необходимо посчитать итоги по группам. Это можно сделать и средствами 1С, обработав полученную таблицу значений. Например, можно создать иерархическую таблицу значений, каждая строка которой будет содержать ссылку на элемент справочника, сумму и ссылку на такую же таблицу значений, если это группа. Для всех товаров из выборки рассчитать родителей всех уровней и заполнить эту таблицу. Можно запросом (или методом «Выбратьэлементы()») пройтись по справочнику, занести его структуру в таблицу значений, а затем для каждой строки этой таблицы, если это группа, пробегать все строчки нашего запроса с использованием «ПринадлежитГруппе» и аккумулировать итоги. Возможны всякие другие варианты, в том числе использование классов 1С++. Но у всех них есть два минуса, которые мне не нравятся. Во-первых, это большое количество чтений таблицы справочника и вложенные циклы при расчете итогов. Во-вторых, лично мне приятнее и удобнее, чтобы максимум вычислений был сделан на сервере SQL, а 1С только вывела результаты.

            Как это можно сделать на SQL. Если бы речь шла о 2000-ом SQL сервере, то, скорее всего, это выглядело бы как множественное присоединение таблицы справочника для расчета родителей и далее какие-то операции по расчету итогов. В этом подходе меня не устраивает «множественное чтение», поэтому я его не рассматривал, оставил как резервный вариант. В 2005-ом сервере появились замечательные вещи, такие как оконные функции и общие табличные выражения (Common Table Expression или CTE). В частности, с помощью СТЕ возможна организация рекурсии. Рекурсивные запросы значительно быстрее, используют минимум чтений таблиц и более универсальные.

            Итак, алгоритм. Для каждого товара из первоначальной выборки рассчитаем всех родителей с накоплением полного кода из ID элементов справочников. Т.е. будем строить дерево групп в обратную сторону. Отсчет кол-ва уровней так же будем проводить в обратную сторону. Хоть это и может привести к тому, что одна группа будет иметь несколько уровней (смотря из каких глубин к ней пришли), это нам не помешает. Для каждой строки будем хранить ссылку на элемент справочника, из которого пришли в эту группу, значение суммы реализации этого товара. Накопленный полный ID. Причем, перед ID текущего элемента будем ставить «2», а переде ID группы – «1», чтобы потом можно было сделать сортировку по этому полю и получить порядок «как обычно в 1С». Признак группы (чтобы не делать лишних вычислений – в формате 1С. Т.е. 2 – это элемент. 1 – это группа). Ссылку на текущую группу и ссылку на ее родителя. Сначала при помощи рекурсивного поиска родителей надо получить примерно такую таблицу:

 

FullID

ParentID

IsFolder

Tov_Dlya_Itogov

lvl

tov

Summa

2   24901 /

   27J01

2

24901

1

24901

70341.00

1   27J01 /2   24901 /

   27I01

1

   27J01

2

24901

70341.00

1   27I01 /1   27J01 /2   24901 /

46

1

   27I01

3

24901

70341.00

1    46  /1   27I01 /1   27J01 /2   24901 /

0

1

46

4

24901

70341.00

            Колонка lvl – номер шага рекурсии. В этом примере исходный товар, для которого построено дерево, имеет ID=24901. Как видно, полный ID для этого товара есть только в последней строке, для родителя самого верхнего уровня. Последующие действия не требуют рекурсии и выполняются после нее. Берем FullID из строки с максимальным уровнем для данного товара и записываем ее во все строки, для этого товара. Получится так:

FullID

ParentID

IsFolder

Tov_Dlya_Itogov

lvl

tov

Summa

1    46  /1   27I01 /1   27J01 /2   24901 /

   27J01

2

24901

1

24901

70341.00

1    46  /1   27I01 /1   27J01 /2   24901 /

   27I01

1

   27J01

2

24901

70341.00

1    46  /1   27I01 /1   27J01 /2   24901 /

46

1

   27I01

3

24901

70341.00

1    46  /1   27I01 /1   27J01 /2   24901 /

0

1

46

4

24901

70341.00

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

FullID

ParentID

IsFolder

Tov_Dlya_Itogov

lvl

tov

Summa

1    46  /1   27I01 /1   27J01 /2   24901 /

   27J01

2

24901

1

24901

70341.00

1    46   /1   27I01 /1   27J01 /

   27I01

1

   27J01

2

24901

70341.00

1    46   /1   27I01 /

46

1

   27I01

3

24901

70341.00

1    46   /

0

1

46

4

24901

70341.00

Остается только сгруппировать по полю Tov_Dlya_Itogov и отсортировать по FullID. Отчет готов.

            Перейдем к реализации. Для удобства запишем исходный запрос через СТЕ:

with main as

(

              select $t.Номенклатура tov,sum($t.Сумма) summa 

              from $ДокументСтроки.Реализация t (nolock)

              inner join _1sjourn jj (nolock) on jj.iddoc=t.iddoc

              where jj.closed&1=1

                    and jj.date_time_iddoc between '20090501' and '20090531Z'

              group by $t.Номенклатура

)

            Теперь рекурсия. Запуск рекурсии выглядит следующим образом:

       select

             cast('2'+tov+'/' as varchar(255)) FullID,parentid,2 isfolder

             ,tov tov_dlya_itogov,1 lvl

             ,tov,summa

       from main t

       inner join $Справочник.Номенклатура s (nolock) on s.id=t.tov

При запуске к исходной таблице присоединяется таблица справочника, заполняются служебные поля. Далее, тело рекурсии:

       select cast('1'+s.id+'/'+FullID as varchar(255))

             ,s.parentid, 1

             ,s.id,lvl+1

             ,tov,summa

       from cte

       inner join $Справочник.Номенклатура s (nolock) on s.id=cte.parentid

На каждом шаге наращивается FullID, инкриминируется уровень рекурсии, рассчитываются новые значения родителя для текущей группы. Добавив нерекурсивную часть запроса, запишем все вместе.

with main as

(

       select $t.Номенклатура tov,sum($t.Сумма) summa 

       from $ДокументСтроки.Реализация t (nolock)

       inner join _1sjourn jj (nolock) on jj.iddoc=t.iddoc

       where jj.closed&1=1

             and jj.date_time_iddoc between '20090501' and '20090531Z'

       group by $t.Номенклатура

)

, cte as

(

       select

             cast('2'+tov+'/' as varchar(255)) FullID,parentid,2 isfolder

             ,tov tov_dlya_itogov,1 lvl

             ,tov,summa

       from main t

       inner join $Справочник.Номенклатура s (nolock) on s.id=t.tov

 

       union all

 

       select cast('1'+s.id+'/'+FullID as varchar(255))

             ,s.parentid, 1

             ,s.id,lvl+1

             ,tov,summa

       from cte

       inner join $Справочник.Номенклатура s (nolock) on s.id=cte.parentid

)

 

 

select tov_dlya_itogov [Товар $Справочник.Номенклатура]

,personal_path

,isfolder ЭтоГруппа

,sum(summa) Сумма

from

(

       select *

             ,substring(common_path,1,

patindex('%'+tov_dlya_itogov+'%',common_path)+9) personal_path

       from

       (

             select *,max(case when m_lvl=lvl then FullID end)

over(partition by tov) common_path

             from

             (

                    select *, max(lvl) over(partition by tov) m_lvl

                    from cte

             ) a

       ) a

) a

group by tov_dlya_itogov,isfolder,personal_path

order by personal_path

 

Получается что-то типа шаблона для расчета итогов. Достаточно поменять запрос в Main и скорректировать название полей, кол-во рассчитываемых ресурсов и вид справочника, для групп которого производить расчет итогов. И все будет работать.

Если задача усложняется тем, что к группировке по номенклатуре добавляется группировка по контрагентам. Например, сначала Контрагент, потом Номенклатура. Тогда, помимо соответствующих изменений в запросе Main, нужно добавить в нерекурсивную часть разделение по ID клиента (over(partition by tov) заменить на over(partition by tov, ClientID)), добавить соответствующую группировку. Доработать рекурсивную часть, добавить сохранение на каждом шаге ID клиента. Нерекурсивную часть оформить как еще одно выражение СТЕ. Получится, расчет итогов по группам номенклатуры для каждого клиента будет сам являться исходным запросом для расчета итогов по группам контрагентов. Т.е. добавится еще одно рекурсивное выражение и своя нерекурсивная часть. Все по аналогии.

Для сортировки по наименованию можно вместо FullID собрать FullDescr. Вместо ID элементов записывать наименования. Стоит только обратить внимание на тип данных, в котором хранится FullIDvarchar(255), его может не хватить на полные наименования. И процедуру вырезания подстроки стоит пересмотреть, т.к. она рассчитана на фиксированную длину поля ID.

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1047 19.01.10 10:56 Сейчас в теме
2. aaa 19.01.10 20:26 Сейчас в теме
тоже почитаю на досуге, но я группирую в индексированной ТЗ и не парюсь. Кода минимум, запросы прозрачные, без лишних наворотов
По группам двух справочников вряд ли вообще целесообразно группировать. Отчет будет неудобный для реального использования.
3. alon 171 01.11.12 21:21 Сейчас в теме
Полезная статья.
ИТ группирует только справочники. А вот счета к примеру не сможет.
4. newbas 601 01.07.13 15:50 Сейчас в теме
Попробовал - работает и довольно быстро.
По группам 2-х справочников точно нет необходимости, а вот по группам и элементам - например
"Номенклатура, Склад". Пример бы...
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    79035    Serginio    113    

Расчет страховых взносов в 1С 7.7 "Учет и отчетность предпринимателя, ред. 1.2" с апреля 2020

Бухгалтерский учет Практика программирования Зарплата v7.7 1cv7.md Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

В этой статье описано, какие небольшие изменения можно внести в модуль документа Начисление налогов с ФОТ, чтобы правильно рассчитывались страховые взносы с 1 апреля 2020 г.

09.04.2020    12242    Юджин58    39    

Маркировка лекарств - как передать код маркировки при продаже через ККТ Штрих-М

Практика программирования ККМ v7.7 Здравоохранение, медицина, стоматология Фармацевтика, аптеки Россия Бесплатно (free)

Пример программного кода для вывода чеков на ККМ Штрих-М с передачей информации о маркированных товарах (лекарства).

10.02.2020    11356    vovaapril    34    

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки.

Практика программирования Адаптация типовых решений v7.7 1С7:Комплекс 1С7:ТиС УУ Бесплатно (free)

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    4892    ksnik    14    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    56892    Serginio    33    

Заполнение реквизитов документов из предыдущего документа

Практика программирования Универсальные функции Разработка v7.7 1cv7.md Бесплатно (free)

Функция для автоматического заполнения реквизитов документов.

04.02.2019    5341    drevilo    2    

Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре

Практика программирования Внешнеэкономическая деятельность (ВЭД) Внешнеэкономическая деятельность (ВЭД) v77::ОУ 1С7:ТиС Россия БУ НДС Бесплатно (free)

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

15.11.2017    10831    AndKovalchuk    0    

Доначисление страховых взносов на обязательное страхование от НС и ПЗ в Бухгалтерии 7.7 и УСН 7.7 для Договора подряда

Практика программирования Зарплата Зарплата v77::БУ 1С7:Бух 1С7:УСН Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Во всех источниках, которые мне встречались, написано, что Страховые взносы НС и ПФ нужно начислять, если это указано в Договоре подряда.

06.09.2017    10407    pentanom    0    

1С:Предприятие 7.7. Оптимизация. Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Разгоняем 1С:Предприятие 7.7. Выжимаем последние соки.

31.01.2009    47733    alexk-is    110    

Проверка часового пояса

Практика программирования v7.7 Бесплатно (free)

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    11256    kudenzov    3    

[ПОЛЕЗНЯШКА, 7.7] Как посчитать итоги по документам черным запросом с изподвывертом?

Практика программирования v7.7 1cv7.md Бесплатно (free)

Мелкая полезняшка, считает запросом итоговую сумму документов и количество документов.

12.03.2016    19672    CheBurator    18    

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д.

Разработка внешних компонент Практика программирования WEB v7.7 v8 Бесплатно (free)

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    32628    Serginio    22    

Как уменьшить количество заблокированных объектов Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

История о том как я решил пересобрать форму справочника клиентов и чем это все закончилось...

12.01.2012    15677    ShEvOvIcH    18    

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7

Внешние источники данных Практика программирования Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v7.7 1cv7.md Россия Бесплатно (free)

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    26181    Palmer1976    3    

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 Бесплатно (free)

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    17642    etmarket    14    

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7

Практика программирования Универсальные функции v7.7 1cv7.md Бесплатно (free)

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    18252    Anzhey    14    

Технология обновления нетиповых конфигураций 1С:Предприятия 7.7 Промо

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Данная статья рассчитана на уже подготовленного пользователя, владеющего некоторыми навыками программирования и работы в конфигураторе. Статью можно использовать как поэтапное руководство к действию. Статья была написана для повышения качества работ выполняемых сотрудниками компании Информ Сервис при обновлении нетиповых конфигураций. Я надеюсь, что эта информация окажется полезной и для вас.

12.12.2008    63509    alexk-is    25    

Универсальный способ сравнения таблиц

Практика программирования v7.7 v8 Бесплатно (free)

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    19362    json    1    

Числа прописью в родительном падеже в 7.7? Легко!

Практика программирования v7.7 1cv7.md Бесплатно (free)

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

20.06.2015    13003    gimalaj    3    

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    95637    shmellevich    39    

Отправка сообщения посредством почтового клиента Lotus Notes

Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Отправка сообщения посредством почтового клиента Lotus Notes из 1С 7,7 и 1с 8

21.08.2014    14761    iolko    8    

Исправление в типовой комплексной конфигурации глобальной функции глВсеРеквизитыДокументаЗаполнены()

Практика программирования v7.7 1С7:Комплекс Россия Бесплатно (free)

В типовых конфигурациях глобальная функция глВсеРеквизитыДокументаЗаполнены() не работает с реквизитами табличной части. Данная статья содержит текст исправленной функции, корректно проверяющей табличную часть.

20.08.2014    8232    hvv2002    0    

ЗаполнитьЗначенияСвойств - заставляем работать в 7.7

Практика программирования v7.7 1cv7.md Бесплатно (free)

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    22362    tomvlad    5    

Контекстный поиск в 7.7

Инструментарий разработчика Практика программирования v7.7 1cv7.md Бесплатно (free)

Процедура контекстного поиска в журнале документов.

18.04.2014    9845    cushe    2    

Проверка ИНН v.7.7

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Проверка ИНН v.7.7

08.03.2014    9724    kras_71    1    

Полезные функции. Склонение (должность и фамилия подписантов). Любой язык

Практика программирования v7.7 v8 Бесплатно (free)

Уехал директор в командировку, отпуск... , оставил доверенность на хозяйственные операции на другого сотрудника. Все договора и другие документы в обмороке - "подписант" теперь другой, по тексту тоже много правок... Пересмотрел много публикаций, вариантов много, не приглянулось. Сделал свой "Баян" . У меня всего-то крутится пять фигурантов ... Нет простого, наглядного и всепогодного варианта без языкового барьера. Всем процессом управляет пользователь.

03.03.2014    18165    kompas-dm    5    

Подготовка сведений для ПФР ЗиК 339. СЗВ-6-4 две незначительные ошибки.

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Подготовка сведений для ПФР ЗиК 339. СЗВ-6-4 две незначительные ошибки: 1.При переносе сотрудника из одной пачки в другую у него теряются сведения о выплатах. 2.Неактивна кнопка сортировки сотрудников.

11.10.2013    12907    Cvetic    7    

Реализация Ctrl+Z в 1С 7.7 (ТиС)

Практика программирования v7.7 1С7:ТиС Бесплатно (free)

В семерке отсутствует возможность отменять последнее действие в формах документов. В данной статье будет рассмотрен пример реализации данной функции. Возможно, кому-нибудь пригодится.

15.07.2013    8160    a.o.popova    10    

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

Практика программирования Внешние источники данных v7.7 Бесплатно (free)

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

04.04.2013    19790    ivisor_fil    11    

Автосохранение документа в 1С 7.7

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

В данной статье мы рассмотрим автосохранение документа в 1С 7.7!

22.03.2013    13698    aagubarev    25    

Ошибка заполнения отчета о движении денежных средств за 2012г (RP12Q4 12q4004)

Практика программирования v77::БУ 1С7:Бух Россия Бесплатно (free)

Ошибка заполнения отчета движения денежных средств за 2012г (RP12Q4 12q4004)

13.03.2013    9419    Famza    5    

Конвертация данных 2.1 (2.1.3.1) 1С 7.7 - 1С 8.Х передача параметра ПКО

Практика программирования Перенос данных из 1С7.7 в 1C8.X v7.7 v8 КД Бесплатно (free)

Передача параметров по умолчанию доступна только для баз 1С 8.х -1С 8.х. Показан пример, как передать параметры из 1С 7.7 - 1С 8.х

10.12.2012    25716    serg_gres    6    

Устранение проблемы при работе с полем, которое ограничено маской ввода

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Для поля, у которого установлена маска ввода, перед программной инициализацией необходимо начальное значение преобразовать к значению в соответствии с маской, иначе буду потеряны символы в местах разделителях. В данной публикации приведена функция, которая универсально выполняет данное действие.

08.08.2012    16685    www2000    4    

Скрытие помеченных на удаление в справочнике

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Корректно скрываем помеченных на удаление в справочнике, с иерархией и без. Вроде простая и нужная вещь, но почему-то нигде не встречалась

08.08.2012    14502    mikukrnet    7    

Исправление и проведение документов

Практика программирования v77::БУ 1С7:ПУБ Россия Бесплатно (free)

Исправление и проведение документов, например, счетов-фактур, введенных на основании документов реализации, можно организовать многими способами. Описан сравнительно простой подход, реализованный и работающий несколько лет в реальной бухгалтерии 1Cv7.7. Без внешних компонентов.

23.07.2012    13572    BorisBelov    11    

Динамическая фильтрация в справочнике при вводе наименования

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Позволяет в открытой форме списка, выбора или подбора справочника производить динамическую фильтрацию по набранному наименованию.

02.07.2012    16704    maxpiter    62    

Продажа собственной фирме (интеркомпани) - заполнение отрицательными остатками

Практика программирования Учет ТМЦ Учет ТМЦ v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free)

В документе "Продажа собственной фирме" приходится добавлять номенклатуру вручную через подбор. А ведь можно сэкономить время и заполнить спецификацию документа на основании отрицательных остатков фирмы. Все просто...

06.05.2012    13494    2sw    4    

Ввод остатков по 76.ВА в 1С ПУБ

Практика программирования v77::ОУ v77::БУ 1С7:ПУБ Россия БУ Бесплатно (free)

Статья посвящена найденному мной недостатку в конфигурации 1С 7.7 "Производство-услуги-бухгалтерия", связанному с вводом начальных остатков по 76.ВА.

29.04.2012    10138    Пользователь 1С    0    

Обновление базы 1с 7.7. с помощью движка 1с 8.х

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Если Вас угораздило в стандартную типовую конфу внести правки, причем в самый большой модуль, а именно глобальный. Если к тому же Вы внесли изменение в какую-то стандартную функцию, в которой 1с сама регулярно чего-то меняет, то любое обновление начинает доставать. Используя возможности движка платформы 1с 8.х можно существенно сэкономить себе время и нервы.

28.04.2012    18816    Valerich    31    

Ошибка при формировании отчета Авансы по налогу на имущество. В 1С:Предприятие 7.7. Регламентированная отчетность за I квартал 2012 года Обновление 12q1009 от 18.04.2012 г.

Практика программирования v77::ОУ v77::БУ 1cv7.md Россия Бесплатно (free)

При формировании отчета NIMAVP1.ERT Авансы по налогу на имущество (версия 5.03) в разделе № 1-3 не сохраняет номера Страниц при выборе, что ведет к не сохранению и выводу печати двухмерного кода.

24.04.2012    9439    leo072    7