Онлайн резервирование товаров

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

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

Онлайн резервирование товаров торговля

Бывало ли у Вас такое: зарезервировали товар по телефону, собрались проводить документ, а товара уже нет в доступном остатке на складе? Пока Вы разговаривали, кто-то успел провести документ, который зарезервировал товар. Что делать? Есть одна идея.

Бывало ли у Вас такое: зарезервировали товар по телефону, собрались проводить документ, а товара уже нет в доступном остатке на складе? Как же так? Что ж такое? Недавно был виден остаток в подборе. Приходится вычеркивать товар либо брать партию по другой цене или с неподходящими для покупателя параметрами. Приходится извиняться либо вообще перезванивать и согласовывать новые условия заказа. А дорога каждая минута.

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

Что делать? Есть одна идея. Резервировать товар в не проведенных документах во временных резервах. Более того резервировать товар в новых, еще незаписанных документах. И даже изменять резерв при редактировании количества в строке заявки, удалении строки, изменении склада и других действиях в записанных и новых документах. Резерв сразу увидят все пользователи.

Можно предусмотреть также аварийное завершение программы у пользователя, когда его документы не сохранились и временные резервы должны быть удалены.

Что нужно сделать? Рассмотрим работу с форматом SQL. Все это писалось в 2007 году, но до сих пор работает. smiley

Необходимо  создать свою таблицу SQL примерно такой структуры: Товар, Склад, Резерв, IDDOC. Если склад адресный - добавляется поле для ячейки.

Далее необходимо модифицировать получение свободных остатков там где это нужно с учетом временных резервов:

Функция глПолучитьСвободныйОстаток(ВыбТовар, ВыбСклад, ПоложительныеОстатки =0, ОстаткиВТЗ =0)Экспорт
    ТекстЗапроса = "
    |SELECT SUM(Запрос.Остаток - Запрос.Резерв) AS Количество
    |FROM
    |(
    |SELECT ОстаткиТМЦОстатки.КоличествоОстаток Остаток
    |    , 0 Резерв
    |FROM $РегистрОстатки.ОстаткиТМЦ(,,
    |        (Номенклатура = :ВыбТовар)
    |        AND (Склад = :ВыбСклад)
    |        ,,
    |        Количество) AS ОстаткиТМЦОстатки
    |
    |UNION ALL
    |
    |SELECT 0 Остаток
    |, РезервыТМЦОстатки.КоличествоОстаток Резерв
    |FROM $РегистрОстатки.РезервыТМЦ(,,
    |        (Номенклатура = :ВыбТовар)
    |        AND (Склад = :ВыбСклад)
    |        ,,
    |        Количество) AS РезервыТМЦОстатки
    |
    |UNION ALL
    |
    |SELECT 0 Остаток
    |, ВременныйРезерв.Res Резерв
    |FROM Tempost AS ВременныйРезерв (NOLOCK)
    |WHERE ВременныйРезерв.Tov = :ВыбТовар
    |      AND ВременныйРезерв.Skl = :ВыбСклад
    |) AS Запрос
    |";
        
    Если ПоложительныеОстатки = 1 Тогда //только остатки > 0
        ТекстЗапроса = ТекстЗапроса + "
        |HAVING SUM(Запрос.Остаток - Запрос.Резерв) > 0
        |";
    КонецЕсли;
    
    RecordSet.УстановитьТекстовыйПараметр("ВыбТовар",    ВыбТовар);
    RecordSet.УстановитьТекстовыйПараметр("ВыбСклад",    ВыбСклад);
        
    ТЗ = RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);
    
    Если ОстаткиВТЗ = 0 Тогда
        Возврат ТЗ.ПолучитьЗначение(1,1);
    Иначе 
        Возврат ТЗ;
    КонецЕсли;    
КонецФункции

Предусматриваем отмену проведения документа и его удаление:

Процедура ПриОтменеПроведенияДокумента(Док)//Переводим на всякий случай во временный резерв//Нужно следить за тем чтобы непроведенные документы долго не болталисьЕсли Док.Вид()= "ЗаявкаПокупателя" Тогда ТекстЗапроса ="|INSERT INTO Tempost
        |SELECT $РезервыТМЦ.Номенклатура
        |, $РезервыТМЦ.Склад
        |, $РезервыТМЦ.Количество
        |, РезервыТМЦ.IDDOC
        |FROM $Регистр.РезервыТМЦ AS РезервыТМЦ
        |WHERE (РезервыТМЦ.IDDOC = :ТекДок)
        |"; RecordSet.УстановитьТекстовыйПараметр("ТекДок", Док.ТекущийДокумент()); RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);КонецЕсли;КонецПроцедурыПроцедура ПриУдаленииДокумента(Док, Реж)//Удаляем временный резерв по документуЕсли Док.Вид()= "ЗаявкаПокупателя" Тогда ТекстЗапроса ="|DELETE
        |FROM Tempost (HOLDLOCK)
        |WHERE IDDOC = :ВыбДок
        |"; RecordSet.УстановитьТекстовыйПараметр("ВыбДок", Док); RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);КонецЕсли;КонецПроцедуры

Также создаем функцию глИзменитьРезерв(), которая будет анализировать свободный остаток и сравнивать его с количеством товара в документе (при этом для проведенных документов будем учитывать не только содержимое временных резервов, но и движения документа). При возможности зарезервировать товар она будет записывать резерв во временное хранилище. Фактически каждое редактирование содержимого документа будет добавлять записи со знаком - или + в таблицу временных резервов. Вот фрагмент текста функции:

Если ПоДвижениямДокумента = 1 Тогда
    ТекстЗапроса = "
    |SELECT Sum(ISNULL($РезервыТМЦ.Количество,0) + ISNULL(ВременныйРезерв.Res,0)) Количество
    |FROM $Регистр.РезервыТМЦ AS РезервыТМЦ (NOLOCK)
    |LEFT JOIN Tempost AS ВременныйРезерв (NOLOCK) ON РезервыТМЦ.IDDOC = ВременныйРезерв.IDDOC
    |AND $РезервыТМЦ.Номенклатура    = ВременныйРезерв.Tov
    |AND $РезервыТМЦ.Склад           = ВременныйРезерв.Skl
    |WHERE (РезервыТМЦ.IDDOC            = :ТекДок)
    |    AND ($РезервыТМЦ.Номенклатура  = :Товар)
    |    AND ($РезервыТМЦ.Склад         = :Склад)
    |";

    RecordSet.УстановитьТекстовыйПараметр("ТекДок",   ТекДок);
    RecordSet.УстановитьТекстовыйПараметр("Товар",    Товар);
    RecordSet.УстановитьТекстовыйПараметр("Склад",    Склад);

    ТаблИтогов = RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);
Иначе
    ВыдаватьСообщение = 0; //документ может быть старым и во временных резервах отсутствовать

    ТекстЗапроса = "
    |SELECT Sum(ВременныйРезерв.Res) Количество
    |FROM Tempost AS ВременныйРезерв
    |WHERE (ВременныйРезерв.IDDOC    = :ИДДок)
    |    AND (ВременныйРезерв.Tov    = :Товар)
    |    AND (ВременныйРезерв.Skl    = :Склад)
    |";

    RecordSet.УстановитьТекстовыйПараметр("ИДДок",    ИДДок);
    RecordSet.УстановитьТекстовыйПараметр("Товар",    Товар);
    RecordSet.УстановитьТекстовыйПараметр("Склад",    Склад);

    ТаблИтогов = RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);
КонецЕсли;    

Далее модифицируем модуль формы документа "Заявка покупателя". В процедуру ПриОткрытии() добавляем код создания временной таблицы хранения резервов (для отката изменений):

Процедура ПриОткрытии() СтарыйСклад = Склад; ИДДок = Meta.ЗначениеВСтрокуБД(ТекущийДокумент()); ИДПольз = Meta.ЗначениеВСтрокуБД(глПользователь);Если Выбран()= 0 Тогда ВТ ="temp" + СокрЛП(ИДПольз);Иначе ВТ ="temp" + СокрЛП(ИДДок);КонецЕсли;//для отката изменений ТекстЗапроса ="|if exists (select name from dbo.sysobjects where name = '" + ВТ + "' and xtype = 'U ')
    |drop table " + ВТ + "
    |"; RecordSet.ВыполнитьИнструкцию(ТекстЗапроса); RecordSet.ВыполнитьИнструкцию("create table " + ВТ 
 +" (tov char(9), skl char(9), res numeric (15,3), iddoc char(9))"); RecordSet.УстановитьТекстовыйПараметр("ИДДок", ИДДок); RecordSet.ВыполнитьИнструкцию("insert into " + ВТ +" select * from tempost where iddoc = :ИДДок");КонецПроцедуры

При записи документа производим хитрые манипуляции с таблицей для отката изменений и изменяем Iddoc в таблице временных резервов:

Процедура ПриЗаписи()Если Выбран() =1 ТогдаВозврат;КонецЕсли; Записать(); СтарыйИДДок = Лев(Meta.ЗначениеВСтрокуБД(глПользователь),6) +"ZZZ"; ИДДок = Meta.ЗначениеВСтрокуБД(ТекущийДокумент());//назначаем постоянный иддок новому документу RecordSet.УстановитьТекстовыйПараметр("ИДДок", ИДДок); RecordSet.УстановитьТекстовыйПараметр("СтарыйИДДок", СтарыйИДДок); RecordSet.ВыполнитьИнструкцию("update tempost (HOLDLOCK) set iddoc = :ИДДок where iddoc = :СтарыйИДДок"); ИДДок = Meta.ЗначениеВСтрокуБД(ТекущийДокумент()); ИДПольз = Meta.ЗначениеВСтрокуБД(глПользователь);//таблицу для отката переименуем ВТ ="temp" + СокрЛП(ИДПольз); ВТНов ="temp" + СокрЛП(ИДДок); RecordSet.ВыполнитьИнструкцию("EXEC sp_rename '" + ВТ +"', '" + ВТНов +"'");//если документ записан - удалим его из таблицы открытых документов RecordSet.УстановитьТекстовыйПараметр("ИДДок", ИДДок); RecordSet.ВыполнитьИнструкцию("delete from openz with(HOLDLOCK) where iddoc = :ИДДок");КонецПроцедуры

Процедура ПриЗакрытии() не менее хитрая, нам нужно откатить изменения:

Процедура ПриЗакрытии()
    Если Выбран() = 1 Тогда
        //если документ не записывается но изменялся - возвращаем назад состояние таблицы
        ИДДок = Meta.ЗначениеВСтрокуБД(ТекущийДокумент());
        ВТ = "temp" + СокрЛП(ИДДок);
        
        Если Модифицированность() = 1 Тогда
            RecordSet.УстановитьТекстовыйПараметр("ИДДок", ИДДок);
            RecordSet.ВыполнитьИнструкцию("delete from tempost with(HOLDLOCK) where iddoc = :ИДДок");
            
            RecordSet.ВыполнитьИнструкцию("insert into tempost with(HOLDLOCK) select * from " + ВТ);
            
            //если документ не изменялся сознательно - удалим его из таблицы открытых документов
            RecordSet.УстановитьТекстовыйПараметр("ИДДок", ИДДок);
            RecordSet.ВыполнитьИнструкцию("delete from openz with(HOLDLOCK) where iddoc = :ИДДок");
        КонецЕсли;
        
        RecordSet.ВыполнитьИнструкцию("drop table " + ВТ);
        Возврат;
    КонецЕсли;
    
    //если новый документ не записывается - очищаем таблицу
    ИДДок = Лев(Meta.ЗначениеВСтрокуБД(глПользователь), 6) + "ZZZ";
    
    ИДПольз = Meta.ЗначениеВСтрокуБД(глПользователь);
    ВТ = "temp" + СокрЛП(ИДПольз);
    
    RecordSet.УстановитьТекстовыйПараметр("ИДДок", ИДДок);
    RecordSet.ВыполнитьИнструкцию("delete from tempost with(HOLDLOCK) where iddoc = :ИДДок");
    
    RecordSet.ВыполнитьИнструкцию("drop table " + ВТ);
КонецПроцедуры 

Самое сложное позади. Осталось предусмотреть редактирование данных документа. Приведу коды некоторых процедур:

Процедура ПриУдаленииСтроки() глИзменитьРезерв(ТекущийДокумент(), Номенклатура, Склад,0, -Количество);КонецПроцедурыПроцедура ПриНачалеРедактированияСтроки() СтароеКоличество = Количество;КонецПроцедурыПроцедура ПриОкончанииРедактированияСтроки() МаксКолво =0;Если глИзменитьРезерв(ТекущийДокумент(), Номенклатура, Склад, Количество, Количество - СтароеКоличество, МаксКолво) =0 Тогда Количество = МаксКолво;КонецЕсли;КонецПроцедуры

При такой доработке конфигурации получаем три очевидных плюса при достаточно глубоком изменении кода:

  • Товар, который подбирается в заявку, будет в свободном остатке и заявка однозначно будет проведена (не придется звонить и извиняться перед заказчиком)
  • Ускорение проведения документов
  • Ускорение вывода доступных остатков в форме подбора, отчетах, формах документов

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

Вот вкратце и все. Если тема показалась интересной - пишите, будем внедрять. smiley

Скачать файлы

Наименование Файл Версия Размер
Демо конфигурация online резервирования (только для SQL)

.rar 450,00Kb
1
.rar 1.0 450,00Kb 1 Скачать

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

Оставьте свое сообщение

См. также

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 Промо

Универсальные функции Практика программирования v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    28992    4    Serginio    1    

Как получить номер и дату договора из наименования справочника договоров?

Обработка справочников Практика программирования v7.7 1cv7.md Абонемент ($m)

В типовых конфигурациях платформы "1С:Предприятие 7.7" часто номер и дата договора указаны в самом наименовании договора. Что создает сложности в тех случаях, когда эти реквизиты надо знать, например, при конвертации данных в конфигурации платформы "1С:Предприятие 8", где номер и дата договора - отдельные реквизиты.

1 стартмани

24.09.2015    21795    2    SiAl    7    

1С: 7.7. Функции-обертки, функторы, отложенный вызов, карринг параметров на примере функции чтения табличных данных

Практика программирования v7.7 1cv7.md Абонемент ($m)

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

1 стартмани

17.09.2015    10225    3    rozhkovdmitriy    21    

Процесс бар (индикатор состояния выполнения цикла) Промо

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

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

14.04.2008    25369    870    ded00786    38    

Все про картинки в 1С 7.7, ну или почти все...

Практика программирования v7.7 1cv7.md Абонемент ($m)

В 1С 8 наличие картинок товаров предусмотрено изначально, а в 7.7 такого нет. Проблема существует и ее исправляют, но это, как правило, частные случаи, касающиеся, например, печати прайса http://infostart.ru/public/289876/ , показу картинок в справочнике номенклатура http://infostart.ru/public/17125/, файловый менеджер картинок товара http://infostart.ru/public/15239/ или просто конфигурации работы с картинками http://infostart.ru/public/21142/ (не стремился дать полный обзор, поэтому не попавшие не обижайтесь :). Что не устроило – информация разбросана по статьям, необходимость дополнительно напрягаться, чтобы это заработало. Здесь я попытался собрать все «до кучи», а так же дать необходимые ссылки для желающих «копнуть вглубь».

1 стартмани

18.11.2014    35252    74    kitminsk    11    

Загрузка процессора 100% на 1С Предприятие 7.7 или еще один вариант odbc33.dll

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

Версия vk_TerminalSleep для работы совместно с "секретным релизом" на Windows 7.

1 стартмани

07.01.2014    12252    35    Ma_X_X    1    

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

Практика программирования Работа с интерфейсом openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

1C v.7.7 Пример вывода отчета с заранее неизвестным количеством группировок, с возможностью изменять уровень вложенности группировок из списка значений на форме, с нумерацией конечного отчета, с выводом структуры вложенности группировок (с помощью внешней компоненты Йоксель - http://yoksel.net.ru/Hotfixes). В приложенном файле показан пример вывода отчета из сформированной таблицы значений. Код я старался закомментировать как можно подробней. Хоть семерка и вымирающая платформа, думаю еще есть люди, которые только начинают ей заниматься, и им это может пригодиться.

1 стартмани

21.03.2012    28022    21    unichkin    11    

[Разработчику] Любая таблица значений в OLAP

Инструментарий разработчика Универсальные обработки Практика программирования v7.7 1cv7.md Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    28841    50    venger    7    

FTP отправка из 7.7

Практика программирования v7.7 1cv7.md Абонемент ($m)

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

3 стартмани

07.12.2012    41793    113    Yury1001    25    

Функция Случайное число, RANDOM, RND для 1С 7.7 Промо

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

В 1С нет функции случайного числа. представляю Вам свою. основана на получении идентификатора и из него случайного числа. от 0 до 10, от 0 до 100 и от 0 до 1000.

1 стартмани

28.09.2011    23504    18    dnikolaev    19    

Библиотека кода 1С 7.7 (накопленная за 8 лет)

Практика программирования v7.7 1cv7.md Абонемент ($m)

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    27652    245    adhocprog    51    

Групмейкер для таблицы значений.

Инструментарий разработчика Практика программирования Универсальные обработки v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

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

1 стартмани

20.11.2012    24633    58    dusha0020    15    

Подготовка сведений для ПФР - исправление некорректного формирования отрицательных сумм взносов с сумм превышения максимального предела. Конфигурация: ЗИК 7.70.328

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

Подготовка сведений для ПФР - исправление в формирование сведений персонифицированного учета, при превышении максимального предела

1 стартмани

22.10.2012    19868    49    u_n_k_n_o_w_n    9    

А ты умеешь СТУЧАТЬ? (или Азбука Морзе на 1С) Промо

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Азбука Морзе теперь и на языке 1С . А ты знаешь, как звучит сигнал "SOS" ? А ты сможешь в трудную минуту его просигналить ?

1 стартмани

22.03.2010    31043    197    Tatitutu    39    

Выгрузка на сайт через EXСEL, с таймером (с повторениями выгрузки через заданный промежуток времени). 7.7 ТиС Украина

Загрузка и выгрузка в Excel Практика программирования WEB v77::ОУ 1С7:ТиС Украина Абонемент ($m)

Данная обработка состоит из двух обработок, т.к. таймер в 1С реализован крайне криво, я старался как мог. Первая обработка запускает таймер, и настройки выгрузки (а точнее вторую обработку, которая выгрузкой и занимается непосредственно). Выгрузка данных в EXСEL осуществляется согласно логу, т.е. выгружаются исключительно те данные, которые редактировали ближайшие два дня. Также обработка автоматически удаляет все экселевские файлы, лежащие в указанной папке более трех дней (можно эту функцию отключить) Подробная инструкция по установке в описании

1 стартмани

03.09.2012    10946    15    serko8547    1    

Сохранить активный табличный документ на рабочий стол в XLS

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Казахстан Абонемент ($m)

Удобное, БЫСТРОЕ сохранение табличного документа. Средствами йокселя. Сохраняет открытый документ на рабочий стол.

1 стартмани

22.08.2012    13539    6    Maximysis    3    

Корректировка EXCEL–файла. Восстановление «длинных» строк.

Практика программирования Загрузка и выгрузка в Excel Внешние источники данных v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Обработка предназначена для борьбы с обрезанием строк (не более 255 символов) при записи MXL-файла в EXCEL.

1 стартмани

13.07.2012    17013    14    Ягг    1    

Баги 1С 7.7 - добро или зло: непосредственный ввод "а ля 1С 8.х" без использования ВК

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Баг 1С 7.7 открывает нам возможность реализовать без использования ВК непостредственный ввод таких значений, как справочники, перечисления, документы по введенному тексту в поле ввода (а ля 1С 8.х)

1 стартмани

25.06.2012    24049    34    MarSeN    21    

Группы "быстрых" индикаторов на формах 1с7.

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Индикация влож. циклов, параллел. процессов; динам.гистограммы. Индикаторы: реагируют на отрицат.шаги - не только Прогресс-Индикаторы. "Быстрые": вывод на экран не на каждом, а на заранее расчитанном шаге. Управление: инверсия белого-черного, переворот линейки. Можно записывать истории Процессов. Возможны вертикальный и компактный вывод.

1 стартмани

13.06.2012    11552    23    newold2    6    

"Справочник плюс". Прямая запись в справочники 1С 7.7

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

"Справочник плюс" - замена штатного объекта "Справочник.ХХХ" Предназначен для "прямой" записи, и дает возможность управлять табличными подсказками при чтении. Позволяет избавиться от монопольных блокировок таблиц справочников и таблицы констант. Главным мотивом написания было избавиться от вылетов 1С из-за deadlock-ов и "недопустимых состояний курсоров". Состоит из нескольких классов 1с++, нескольких переменных и методов в глобальном модуле.

1 стартмани

24.05.2012    15137    23    an_2    16    

Работа с бинарными файлами в 1С 7.7

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Описание принципов и набор инструментов для работы с двоичными данными в 1С 7.7. Примеры во вложениях.

1 стартмани

16.05.2012    25910    93    dusha0020    8    

Внешний отчет Книга продаж 2012 для старых релизов Бухгалтерии 7.7 (протестировано на релизе 445 типовой конфигурации).

Практика программирования Анализ учета Учет доходов и расходов Розничная торговля Учет доходов и расходов Розничная торговля v77::БУ 1С7:Бух Россия БУ Абонемент ($m)

Внешний отчет Книга продаж, форма применяемая с 2012 года, для старых релизов Бухгалтерии 7.7 (протестировано на релизе 445 типовой конфигурации).

1 стартмани

29.04.2012    10465    161    ddv68    11    

Как я создал внешнюю обработку из встроенной

Практика программирования v77::ОУ 1С7:ТиС Россия Абонемент ($m)

Выбранный "сделать не проведенным" работает как провести

1 стартмани

27.04.2012    7912    9    AlexxxMksv    12    

Внешний отчет Книга покупок 2012 для старых релизов Бухгалтерии 7.7

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

Внешний отчет Книга покупок 2012 для старых релизов Бухгалтерии 7.7 (протестировано на релизе 445 типовой конфигурации).

1 стартмани

26.04.2012    11360    159    ddv68    8    

Добавление стран из классификатора сохраненного в таблице значений

Практика программирования v77::ОУ 1С7:ТиС Россия Абонемент ($m)

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

1 стартмани

23.04.2012    6658    9    noknown    2    

Проверка и исправление реквизитов контрагентов в соответствии с сайтом STA.GOV.UA

Разное Практика программирования v77::ОУ v77::БУ 1cv7.md Украина Абонемент ($m)

Отчет-Обработка для заполнения в украинской конфигурации реквизиты контрагентов в соответствии с сайтом STA.GOV.UA. Проверку можно осуществлять как по ИНН таки по ЕДРПОУ. Можно сделать только отчет. А если понадобится то установив соответствующие флажки сделать необходимые изменения. Можно делать как для отдельного контрагента (выбрав его в отчете) так и для всех контрагентов сразу (для этого поле контрагента оставить пустым). Сделал Отдельно для "ТиС" и Отдельно для "Бухг учет"- Конфигурации для Украины

1 стартмани

12.03.2012    11534    8    volodya1122    6    

Исправление ошибки в печати справок 2-НДФЛ в 1С Бухгалтерии 7.7 535 релиз и УСН 189

Справки Практика программирования Зарплата Зарплата v77::БУ 1С7:Бух Россия БУ НДФЛ Абонемент ($m)

При подборе в печати справок возникает ошибка "Если Элемент.ОсновнойЭлемент <> Элемент Тогда {Отчет.СправкиПоНДФЛ.Форма.Модуль(4782)}: Поле агрегатного объекта не обнаружено (ОсновнойЭлемент)"

1 стартмани

30.01.2012    19473    72    Intelligent    21    

Взаимозачет по партиям для регистра "ПартииНаличие"

Практика программирования Анализ учета Учет ТМЦ Учет ТМЦ v77::ОУ 1С7:ТиС Россия БУ Абонемент ($m)

В процессе работы с конфигурацией ТИС, в разрезе одной номенклатуры могут накапливаться как положительные так и отрицательные остатки по различным партиям. Данная обработка содержит модуль проведения регламентного документа, который можно было бы создать в конфигурации и условно назвать "КорректировкаПартий", посредством которого можно провести взаимозачёт таких партий.

1 стартмани

02.01.2012    10956    123    Digo65    19    

Хранение любых файлов в конфигурации бух 4.5 1С77 с привязкой их к справочникам и документам

Практика программирования v77::БУ 1С7:Бух Абонемент ($m)

Небольшая доработка типовой конфигурации 1С77 Бухгалтерский учет 4.5. После доработки конфигурация позволяет "крепить" к любым справочникам и документам любые файлы (картинки, сканы документов, xls файлы расчетов, rtf файлы документов и договоров).

1 стартмани

20.12.2011    9180    41    zspr    30    

Миниклавиатура для ТиС 9.2 7.7

Практика программирования Учет ТМЦ Учет ТМЦ v77::ОУ 1С7:ТиС Россия УУ Абонемент ($m)

Обработка для подбора по коду товара, можно адаптировать под различные варианты. Написал так, ради интереса.

1 стартмани

22.11.2011    6392    10    volsh77    3    

Редактор и исполнитель программного кода в режиме Предприятие (1С 7.7)

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

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

1 стартмани

19.11.2011    22736    135    dusha0020    44    

Плагин для лечения выгрузки и загрузки больших баз в 1С 7.7 (портирование под Win7)

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

В связи с изменением состава DLL в Wiindows 7 оригинальный плагин выложенный здесь http://infostart.ru/public/15364/ перестал работать в Windows7/WindowsServer 2008 R2. (Что именно там изменилось можно посмотреть здесь http://ru.wikipedia.org/wiki/MinWin) Данный плагин - это простое портирование оригинального плагина под Windows 7

1 стартмани

31.10.2011    56066    595    avgreen    94    

Загрузка данных из MXL

Практика программирования Внешние источники данных v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Простенькая обработка. Перебирает файлы с расширением MXL по условию. Если соответствует условию, загружает данные из этого файла. В архив вложен MXL файл для примера.

1 стартмани

25.10.2011    13612    68    YChemodanov    7    

Структура конфигурации 1С v7.Х в удобочитаемом виде.

Практика программирования v7.7 openconf 1cv7.md Россия Абонемент ($m)

Отчет предоставляет информацию о структуре конфигурации 1С v7.Х в удобочитаемом виде. Имеется возможность получения общей информации об объектах базы данных.

1 стартмани

24.10.2011    13492    55    БоНН    12    

Новая транспортная накладная

Практика программирования Розничная торговля Розничная торговля v77::ОУ 1С7:ТиС Россия БУ Абонемент ($m)

Новая транспортная накладная. Документ для ТиС 9.2

1 стартмани

18.10.2011    7549    45    Mikola    9    

Генерация случайных чисел (random)

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

Еще один вариант генерации случайных чисел в 1с 7.7.

1 стартмани

29.09.2011    16609    14    Rusel2009    9    

Подготовка сведений для ПФР 2011 с расчетом уплаченных НЕ через коэффициент

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

Создан для исправления любого предыдущего отчета с последующим созданием отчетов в свете новых требований ПФР.

1 стартмани

21.06.2011    9697    246    lookindenis    8    

"Взаимозачёт" и как "Я" его понимаю ...

Практика программирования Дебиторская и кредиторская задолженность Универсальные обработки Дебиторская и кредиторская задолженность v7.7 1С7:ТиС Россия УУ Абонемент ($m)

Определим «Взаиморасчёт» как операцию списания долгов на сумму долга или его части между двумя и, или более объектами. Причём у всех участников взаимных зачётов снижается сумма обязательств.

1 стартмани

06.06.2011    18043    67    Шёпот теней    168