АКЦИЗЫ или что делать, если БСО много

31.10.12

Учетные задачи - Логистика, склад и ТМЦ

Как оприходовать 100 000 000 БСО (Бланки строгой отчетности), так чтоб база не стала? И при ошибке не пришлось препроводить все документы, связанные с этим БСО.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
БСО.rar
.rar 210,04Kb
4
4 Скачать (1 SM) Купить за 1 850 руб.

Принцип уникальной записи

В алгоритмах записи в любой базе данных существует стандартный принцип таблиц. В которую записываются единицы номенклатуры. Однако в данной ситуации каждая номенклатура уникальна и только по ошибке может быть записана дважды.

    Если вдруг захотите создать 100 000 000 записей в регистре. Я не буду вам мешать. 

Может ПАЧКИ спасут положение

Бухгалтер в накладной пишет следующее К001-К201 006005001-006010000

Что делать если не возможно или излишне емко записывать поштучно.

Может существует способ записать пачками?

Приход №1

    движ. Приход: 006000001-007000000

    движ. Приход: 007000001-008000000

Списание испорченного №1 006005501-006005501

    Упс. Теперь нашу пачку нужно разбить. Ладно давайте сделаем это.

    движ. Расход: 006000001-007000000

    движ. Приход:006000001-006005500

    движ. Приход:006005502-007000000

Расход №1

    движ. Расход: 006000001-006005500

Отмена списания испорченного №1 007005501-007005501

     Упс. теперь у нас в записях:

     +(006000001-007000000)

     -(006000001-006005500)

    Можно конечно заставить бухгалтера думать как же там записи ложатся. Но если там одна извилина? и та уже на пенсии?

Ведь с номером 006005501 она "никак " не могла повлиять на номера 006000001-006005500 :)

 

 СКОБОЧНЫЙ АЛГОРИТМ

А давайте запишем приход так:

Приход № 1 

(1,2,3,4,5,6,7,8,9,10),11

Расход №1 

4)5(6    результат: (1,2,3,4),5,(6,7,8,9,10),11

 Расход №2

 )1,2,3,4(  результат: ()1,2,3,4(),5,(6,7,8,9,10),11 или 1,2,3,4,5,(6,7,8,9,10),11

 Отменяем Расход №1

4(5)6    результат:  1,2,3,4,(5,()6,7,8,9,10),11  или 1,2,3,4,(5,6,7,8,9,10),11  

 

Как видим любое движение не приводит к сбоям. А что будет если движение не верное

Например:

 

Приход №1

(1,2,3,4,5,6,7,8,9,10),11

 

Приход №2

 

(1,2,3,4,5,6,7,8,9,10),11

результат:

((1,2,3,4,5,6,7,8,9,10)),11 Как видим это легко записать. Т.е. элементов с 1 по 10 , по 2 штуки. А если далее Расход

Расход №1

 

4)5(6    результат: ((1,2,3,4),5,(6,7,8,9,10)),11 отлично мы видим что элементов с 1-4,6-10 , по 2 штуки , а элемент 5 один.

 

 Как записать в регистре?

Давайте попробуем записать скобками один элемент.

Например, 100. Получиться примерно так 99 ( 100 ) 101 . А если элемент 1 то : ( 1 ) 2. Мы видим, что скобки могут располагаться до элемента и после. Если оприходовать в регистр, ресурс 0 не получим остатка и скобка будет потеряна. Значит записать скобки для 1 как 0,1 нельзя. Можно записать 1,2.

 

Теперь второй момент нужно знать, скобка открывающаяся или Закрывающаяся.

Пусть это будет + или - .Это гарантирует нам , уничтожение двух противоположены скобок.

 

Третий момент. Всегда нужно иметь точное количество бланков.

 

Итак можно записать в регистрах следующую запись (1,2,3,4,5,6,7,8,9,10),11

так:  

Измерение: 1 ресурс:-1

Измерение: 11 ресурс: +11  Вместо 11 может быть вполне 100 000 000 и это будет записано двумя скобками

Сумма ресурса даст 10.

 

Недостаток:

Если нужно узнать есть ли в наличии скажем элемент 5 нужно. С самого начала посчитать колво открытий и закрытий скобок. 

Как с этим работать?

1. Записи в регистре.

Измерение: номер , Ресурс: ресурс

Если приход с 1 по 10 то

Движение расход: Номер: 1 ресурс: -1 

Движение приход: Номер: 11 ресурс: 11

 Если расход 5 то

Движение приход: Номер:5 Ресурс:5

Движение расход : Номер:6 Ресурс:-6

2 Преобразователь скобок в пачки 

Код для 7.7 

Функция Пачки(ТаблОст) 
	ТаблОст.сортировать("Номер+"); 
	таблПачки =Создатьобъект("ТаблицаЗначений");
	таблПачки.новаяКолонка("НачНомер"); 
	таблПачки.новаяКолонка("КонНомер"); 
	таблПачки.новаяКолонка("Колво"); 
	
	текзн=0;
	ТаблОст.Выбратьстроки();
	Пока ТаблОст.ПолучитьСтроку()=1 Цикл 
		Если ТекЗн<>0 тогда 
			ТаблПачки.КонНомер= Число(ТаблОст.Номер)-1; 
			ТаблПачки.Колво =ТаблПачки.Колво+число(ТаблОст.Номер)*ТекЗн; 
		Конецесли; 
		ТекЗн=ТекЗн-ТЗБСО.Ресурс/Число(ТЗБСО.Номер);
		Если ТекЗн<>0 тогда 
			ТаблПачки.новаястрока(); 
			ТаблПачки.НачНомер= Число(ТаблОст.Номер); 
			ТаблПачки.Колво = -Число(ТЗБСО.Номер)*ТекЗн; 
		Конецесли; 
	КонецЦикла;
	возврат ТаблПачки 
Конецфункции

 

Будьте аккуратны данная функция сбивает в пачки и минусовые пачки. (То что кол-во отрицательное в минусовой пачке,в функции учтено)

 

Итого:

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

Пример базы. В файле.

 

См. также

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

89900 руб.

09.06.2020    42004    34    59    

69

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 22.04.2025, версия 9.10 - 10.0)

18000 руб.

20.11.2015    161205    398    386    

525

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Сельское хозяйство и рыболовство Строительство Горнодобывающая промышленность Розничная и сетевая торговля (FMCG) Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Лесное и деревообрабатывающее хозяйство Управленческий учет Платные (руб)

Позволяет автоматизировать процесс взвешивания ТМЦ в организациях, осуществляющих приемку и отгрузку различным транспортом, для ведения складского учета и контроля остатков на складах. Конфигурация позволяет фиксировать вес вручную, напрямую с весов, а также управлять дополнительным оборудованием и контролировать движение транспорта.

40000 руб.

24.03.2015    128767    310    116    

139

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 руб.

29.10.2014    219629    675    529    

462

Операции по ВЭД Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Мастера заполнения Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

СКАЧАЙТЕ И ПОПРОБУЙТЕ БЕСПЛАТНО! Данная обработка расширяет функционал типовой конфигурации «1С:Бухгалтерия предприятия» и позволяет осуществлять автоматическое заполнение ГТД в документах «Реализация товаров и услуг», «Списание товаров», «Отчет о розничных продажах», «Отчет комиссионера (агента) о продажах», «Требование-накладная», «Возврат товаров от покупателя», «Комплектация номенклатуры», «Безвозмездная передача», «Отчет производства за смену». Обработка предназначена для работы в конфигурации «1С:Бухгалтерия предприятия 8, редакция 3.0» Есть версия обработки оптимизированная для работы в 1CFresh

9600 руб.

19.06.2012    140754    278    81    

236
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ildarovich 7961 31.10.12 14:05 Сейчас в теме
Очень красивое и оригинальное решение! "Скобки" нужны только для пояснений. Теоретическим обоснованием тут является "интервальная арифметика". Похожими способом работает операционная система (диспетчер оперативной памяти) в любом компьютере - блоки адресов памяти по требованию процессов занимаются и освобождаются. Вам еще понадобится алгоритм "сборки мусора", который будет запускаться время от времени, убирая ненужные "скобки". Либо список "занятых" и "свободных" блоков, которые будут сразу объединяться. Тема хорошо разработана в рамках исследования алгоритмов диспетчеризации памяти, посмотрите эти алгоритмы!
В публикации, кажется, нужно расшифровать аббревиатуру БСО (непонятно, что это такое).
2. artms 289 31.10.12 14:27 Сейчас в теме
:) БСО - Бланки строгой отчетности. В регистре если есть скобка 1 с ресурсом -1. И к ней будет прибавлена 1 с ресурсом 1. То в данном измерении 1 будет ресурс: 0. И в остатках он будет отсутствовать. Поэтому исходя из строения самой 1с это будет удалено при обрезке базы.
Оставьте свое сообщение