Документ "Коррекция регистров" для правки движений по любому регистру.
Редактирование регистров я давно хотел добавить в "Редактор реквизитов" (http://infostart.ru/projects/3072/), но время показало, что гораздо удобнее и правильнее создавать корректирующий документ.
Если решил бы реализовывать редактирование движений в редакторе, то , во-первых, пришлось бы это делать прямыми запросами, во-вторых, повторное проведение документа восстановило бы старые движения.
Вообще, вот вам еще один мой инструмент "исключительно для админо-программерского использования". Его я еще не показывал на публику, хотя написан он также давно, в году 2004 наверное.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Весь его функционал так же был разработан со временем, по мере использования.
Есть фильтр для отбора итогов, чтобы можно было скорректировать неправильные остатки, поняв как пользоваться этим фильтром, сможете многое...
Можно заполнить текущими остатками, можно частями по фильтру, главное не превысить 9999 строк в документе в DBF базе и 32767 в SQL и выгрузить его в пустую конфигурацию с теми же справочниками, организовав тем самым свертку базы.
В общем, если научитесь пользоваться этим инструментом, применение найдёте и не одно.
В приложенной конфигурации содержится 2 объекта: документ "КоррекцияРегистров" и журнал документов "КоррекцииРегистров", их собственно и нужно загрузить в вашу через объединение. Потом не забудьте права настроить и в интерфейс добавить, если нужно.
Ограничение для использования: в регистре не больше 10 измерений, 10 ресурсов и 10 реквизитов, но я думаю вам хватит, мне хватало с запасом. :)
Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.
Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))
На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема.
Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы.
Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме.
Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.
Встала недавно задача для одной организации, которая все еще на 1С 7.7 немного автоматизировать работу отдела продаж. А именно уйти от ручного заполнения договоров, сделанных юристами в MS Word. Договора от разных фирм и разного назначения отличались. Переводить их в таблицы 1С очень не хотелось и нашел способ прямо в файлах Word сделать небольшие дополнения, чтобы можно было печатать, используя именно эти заготовки юристов.
Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........
Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS.
Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой.
Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ.
Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.
Интересно,я не до конца разобрался пока. Вопрос:
Процедура ОбработкаПроведения()
СпрТов=Создатьобъект("Справочник.Номенклатура");
СпрТов.ВыбратьЭлементы();
Пока СпрТов.ПолучитьЭлемент()=1 Цикл
Если СпрТов.ЭтоГруппа()=0 Тогда
Значение=СпрТов.ТекущийЭлемент();
Прервать;
КонецЕсли;
КонецЦикла;
этот кусок кода для чего?
новая версия 1.1
- удалил лишнее, подравнял, запеременил процедуры и функции...
- добавил возможность вводить сторно на основании другой коррекции или любого документа (нужнот только установить возможность вводить на его основании)
КолИзм = Метаданные.Регистр(ПечРегистр).Измерение();
{Документ.КоррекцияРегистров.Форма.Модуль(732)}: Поле агрегатного объекта не обнаружено (Измерение)
Ура! я выиграл пирожок! просто тольо потому, что получил аналогичную ошибку при обрашении к Ревизит(ИмяРеквизита).Длина - имяреквизита было "неправильное"
(18)
Нет, недолжно. Здесь для создания движений оборотных регистров вместо метода ДвижениеВыполнить() используются методы ДвижениеПриходВыполнить() и ДвижениеРасходВыполнить(). Вроде все работает, но в этом есть некоторая неаккуратность...
(20) Ну, раз создатели не озаботились правильной работой методов то и ладно.. :)
Это как получение атрибутов ДатаДок и НомерДок у документа двигающего регистр в запросе... Тоже по-разному "работает" в скули и дбф, хотя не должно работать вообще...
(12)Напиши например так:
В процедуре ПриОткрытии()
Код
Если ВидРегистра.РазмерСписка()>0 Тогда
Если ВидРегистра.ТекущаяСтрока()=0 Тогда
ВидРегистра.ТекущаяСтрока(1);
КонецЕсли;
Иначе
Сообщить("В данной конфигурации нет ни одного регистра!");
СтатусВозврата(0);
КонецЕсли;
Показать полностью
Посмотри как у меня сделано в идентичном документе
Вобщем - весчь! Автору - респект!.. добавил еще фильтр "В" для измерений (тип "Справочник") и ПОООЛностью удовлетворился!
жаль, только 1 плюс ставится.
Владислав, спасибо! Работает на твердое 5! +1 :) Отдельная благодарность за то, что поделились разработкой, ведь теперь мы можем сосредоточиться на решении других задач, а не решать каждый по отдельности одно и то же 1000 раз. ;)
(24,26) Очень рад что разработка понравилась и пригодилась!
Сам пользовался и редактором реквизитов и коррекцией регистров довольно долго, инструменты получились очень хорошие, много раз выручали...
To Dolly_EV: В следующую версию добавлю фильтр "В" для измерений. :)
На базе этой коррекции можно решить проблему свертки, только нужно сделать или найти обработки - выгрузка документов в файл, загрузка документов из файла, ну и обработку свертки написать, которая создаст по всем регистрам остатков документы коррекции пачками (с учетом ограничения строк в документе) ...
Наработки такие были, найду - выложу...
А так вообще, чем вам не редактор движений? )
Если в качестве документа основания для коррекции, установите какой нибудь другой документ, то на его основании можно будет делать коррекцию его движений, попробуйте... Выбираете регистр и коррекция заполняется сторнирующими движениями. Так же можно и корректировать коррекцию... Вообщем применений много, про фильтр вы и сами уже должны были прочувствовать удобство, фактически засунул в документ отчет по итогам...
(30) А если для неопределенного предложить юзьверу выбрать тип метаданного, а потом уже по назначенному типу - выбор самого матаданного? Кстати, ты прав, этим грешат даже очень солидные проекты - сколько раз предлагал Доржи сделать подобный выбор в Новейшем Отчете, цены б ему тогда не было.... Хотя он и так в ракламе не нуждается - функционал выше крыши.
А вот эти две обработочки Влада - текущая и редактор реквизитов - не смотря на мелкие шероховатости - просто прелесть. Правда Редактор реквизитов я дополнил перепроведением дока - честно! влом мне создавать еще один корректирующий документ. Знаю, знаю, что это есть неверный подход, но... Да и сами данные меняю только те, что не влияют на товарные отчеты и в документах, любое действие над которыми уже запрещено - доки у меня могут корректироватся только не более 3-х дневной давности - более поздние уже фиг (только обработочка Влада и выручает).
(31) Зачем юзверю это надо ? :))
Всё гораздо проще :
При записи атрибутов , просто поглядеть на тип реквизита/измерения (смотря, куда пишем) из самих метаданных, если неопределенно и значение записываемого атрибута не пустое - назначаем тип реквизиту/измерению, беря его из самого значения атрибута.. Вот и всё. Т.е. тупо вставить условие на неопределенный тип.
Пара строк кода.
:)
помимо "В" еще ошибочка (или недоЧОТ)):
При выборе значения фильтра у тебя уловие сбрасывается всегда на "=", даже если оно уже ранее выбрано - поправил проверкой на пустое значение.