Два механизма, которые ускорили работу бухгалтеров в 1С

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

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

Речь пойдет о собственных идеях и их реализации. Доработки были проведены на конфигурации "1С: Бухгалтерия предприятия 8" в далеком 2010 году. Механизмы не привязаны к одной какой-либо типовой конфигурации - их можно реализовать в любой конфигурации. И даже не привязаны к платформе 1С - их можно реализовать на любой платформе. Возможно, эти идеи будут востребованы в самописных и отраслевых решениях 1С. Доработки достаточно просты, при этом ни в одной типовой конфигурации не реализованы.

   Из наблюдений за работой бухгалтеров: бухгалтера постоянно открывают список входящих платежек с отбором по контрагенту, чтобы увидеть, какие платежки по нему заведены в базе. Затем открывают список счетов на оплату с отбором по данному контрагенту. Затем открывают ОСВ по заданному счету опять-таки с отбором по контрагенту. Затем снова открывают счета на оплату, платежки и ОСВ по счету с отбором по другому контрагенту. И так много раз в течение рабочего дня…
   При этом в данном случае механизм структуры подчиненности документов и акты сверок практически не используются по ряду причин, и поэтому не могут ускорить работу бухгалтеров.  
    Чтобы открыть одну форму списка, установить отбор по контрагенту, затем открыть другую форму списка или отчет, снова установить отбор по контрагенту – понадобится с десяток кликов и 1-2-3 мин ожидания на отклик программы.
    Представляю вам две небольшие доработки программы, которые ускорили работу бухгалтеров:
1) переход в списки документов (отчеты) через контекстное меню (рис.1);
2) использование статистики частоты обращения в программе к контрагентам.

Входящие платежки

Рис. 1. Контекстное меню списка входящих платежек.

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

1. Переход в списки через контекстное меню


    Суть - в операционной системе Windows сильно развит механизм контекстного меню: при нажатии правой кнопки мыши выходит список команд, выполняемых с  объектом. Я реализовал подобный механизм в 1С – для каждого списка документов появляется контекстное меню со своим списком команд.
    На платформе 8 (обычные формы) имеется встроенный механизм контекстного меню, использующий командную панель как поставщика команд в соответствующее контекстное меню – вот этот механизм я взял за основу.
    В тех списках, где мне нужна была функциональность контекстного меню, я добавлял свою командную панель или использовал имеющуюся, относящуюся к форме – добавлял необходимые кнопки (рис.2, 3, 4).

Журнал счетов

 Рис. 2. Контекстное меню списка счетов на оплату.

ОСВ по счету

  Рис. 3. Контекстное меню оборотно-сальдовой ведомости по счету.

Счет на оплату

  Рис. 4. Контекстное меню счета на оплату.

    Чтобы разработка данного механизма и последующее добавление в новые формы не стала рутинной операцией, я создал одну командную панель, которую при необходимости копирую в новую форму вместе с процедурами. Лишние кнопки удаляю программно при открытии формы – те, которые относятся непосредственно к текущей форме (рис.5 и 6 и ниже – пример кода). Код разработки достаточно прост - представляю его вам исключительно с целью убедиться, что внедрить и запустить механизм контекстного меню достаточно просто (полдня работы).

Реестр контрагентов

 Рис. 5. Пример разработки контекстного меню для регистра сведений.

Командная панель

Рис. 6. Командная панель для реализации контекстного меню для регистра сведений.

 

 

//быстрый переход к другим документам {
Процедура КоманднаяПанельПереходКДокументамОткрытьОСВ(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;    
    Если ТекСтрока = Неопределено Тогда       
       Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьОСВ(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьКарточкуСчета(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;
    Если ТекСтрока = Неопределено Тогда       
       Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьКарточкуСчета(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьВходящиеПлатежки(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда       
      Возврат;   
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьВходящиеПлатежки(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьИсходящиеПлатежки(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;  
    Если ТекСтрока = Неопределено Тогда         
      Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьИсходящиеПлатежки(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьСправочникКонтрагенты(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда        
      Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьСправочникКонтрагенты(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьРеестрСвидетельств(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда       
      Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьРеестрСвидетельств(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамНазад(Кнопка)
    МодульПро.КоманднаяПанельПереходКДокументамНазад(ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьСписокСчетов(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда        
      Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьСписокСчетов(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура ПриОткрытии()     
    МодульПро.УдалитьКнопкуИзКоманднойПанели(РегистрСведенийСписок, ЭтаФорма);
КонецПроцедуры
//быстрый переход к другим документам }

 


   Процедуры общего модуля "МодульПро" представлены ниже.

 

//быстрый переход к другим документам {
//можно программно удалять, а можно вручную, так как мы заранее знаем, что и где надо удалить
Процедура УдалитьКнопкуИзКоманднойПанели(Список, Форма) Экспорт
    Если ТипЗнч(Список) = Тип("ДокументСписок.СчетНаВзносы") Тогда
       Кнопка = Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Найти("ОткрытьСписокСчетов");              Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Удалить(Кнопка);
    ИначеЕсли ТипЗнч(Список) = Тип("ДокументСписок.ПлатежноеПоручениеВходящее") Тогда
       Кнопка=Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Найти("ОткрытьВходящиеПлатежки");       
       Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Удалить(Кнопка);
    ИначеЕсли ТипЗнч(Список) = Тип("ДокументСписок.ПлатежноеПоручениеИсходящее") Тогда
       Кнопка=Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Найти("ОткрытьИсходящиеПлатежки");       
       Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Удалить(Кнопка);
    ИначеЕсли ТипЗнч(Список) = Тип("ОтчетОбъект.КарточкаСчетаХозрасчетный") Тогда
       Кнопка = Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Найти("ОткрытьКарточкуСчета");              Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Удалить(Кнопка);
    ИначеЕсли ТипЗнч(Список) = Тип("ОтчетОбъект.ОборотноСальдоваяВедомостьПоСчетуХозрасчетный") Тогда
       Кнопка = Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Найти("ОткрытьОСВ");       
       Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Удалить(Кнопка);
    ИначеЕсли ТипЗнч(Список) = Тип("СправочникСписок.Контрагенты") Тогда
       Кнопка=Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Найти("ОткрытьСправочникКонтрагенты");                 Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Удалить(Кнопка);
    ИначеЕсли ТипЗнч(Список) = Тип("РегистрСведенийСписок.РеестрЧленовПартнерства") Тогда
       Кнопка=Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Найти("ОткрытьРеестрСвидетельств");               Форма.ЭлементыФормы.КоманднаяПанельПереходКДокументам.Кнопки.Удалить(Кнопка);
    КонецЕсли;
КонецПроцедуры

Процедура ОткрытьОтчет(НазваниеОтчета, Контрагент, ПредыдущаяФорма)
    Отчет = Отчеты[НазваниеОтчета].Создать();        
    Отчет.Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.05.3");    
    Отчет.Организация   = Справочники.Организации.НайтиПоКоду("000000001");      
    Отчет.ДатаНач       = Неопределено;    
    Отчет.ДатаКон       = Неопределено;
    Отчет.ЗаполнитьНачальныеНастройки();
    ФормаОтчета = Отчет.ПолучитьФорму(,ПредыдущаяФорма);
    ФормаОтчета.НеЗаполнятьНастройкиПриОткрытии = Истина;
    Если ЗначениеЗаполнено(Контрагент) Тогда       
      ФормаОтчета.Контрагент = Контрагент;    
    Иначе        
       Возврат;    
    КонецЕсли;
    ЭлементОтбора = Отчет.ПостроительОтчета.Отбор.Найти("Субконто1");   
    Если ЭлементОтбора = Неопределено Тогда       
      ЭлементОтбора = Отчет.ПостроительОтчета.Отбор.Добавить("Субконто1");   
    КонецЕсли;
    ЭлементОтбора.Использование = Истина;    
    ЭлементОтбора.ВидСравнения  = ВидСравнения.Равно; 
    ЭлементОтбора.Значение      = Контрагент;
    Если НазваниеОтчета = "ОборотноСальдоваяВедомостьПоСчетуХозрасчетный" Тогда       
      Отчет.ПостроительОтчета.ИзмеренияСтроки.Добавить("Субконто1");      
      Отчет.ПостроительОтчета.ИзмеренияСтроки.Добавить("Субконто2");        
    КонецЕсли;
    Если ФормаОтчета.Открыта() Тогда       
      ФормаОтчета.Активизировать();    
    Иначе        
      ФормаОтчета.Открыть();   
    КонецЕсли;
    ФормаОтчета.ОбновитьОтчет();
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьОСВ(Контрагент, ПредыдущаяФорма) Экспорт
    НазваниеОтчета = "ОборотноСальдоваяВедомостьПоСчетуХозрасчетный";   
    ОткрытьОтчет(НазваниеОтчета, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьКарточкуСчета(Контрагент, ПредыдущаяФорма) Экспорт
    НазваниеОтчета = "КарточкаСчетаХозрасчетный";  
    ОткрытьОтчет(НазваниеОтчета, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

Процедура ОткрытьПлатежки(НазваниеПлатежки, Контрагент, ПредыдущаяФорма)
    Если НазваниеПлатежки = "ПлатежноеПоручениеИсходящее" Тогда
    Запрос = Новый Запрос;       
    Запрос.Текст = "ВЫБРАТЬ        
    |   ПлатежноеПоручениеИсходящее.Ссылка        
    |ИЗ        
    |   Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее       
    |ГДЕ        
    |   (ПлатежноеПоручениеИсходящее.Контрагент = &Контрагент       
    |           ИЛИ ПлатежноеПоручениеИсходящее.КонтрагентДолжник = &Контрагент)";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Результат = Запрос.Выполнить();        
    Выборка = Результат.Выбрать();
    СЗ = Новый СписокЗначений;        
    Пока Выборка.Следующий() Цикл            
       СЗ.Добавить(Выборка.Ссылка);        
    КонецЦикла;
    ФормаСписка = Документы.ПлатежноеПоручениеИсходящее.ПолучитьФормуСписка(,ПредыдущаяФорма);        
    ОтборСписка     = ФормаСписка.ДокументСписок.Отбор;        
    ЭлементОтбора   = ОтборСписка.Ссылка;
    ЭлементОтбора.Использование     = Истина;        
    ЭлементОтбора.ВидСравнения      = ВидСравнения.ВСписке;    
    ЭлементОтбора.Значение          = СЗ;
    Если ФормаСписка.Открыта() Тогда           
      ФормаСписка.Активизировать();        
    Иначе            
      ФормаСписка.Открыть();        
    КонецЕсли;
    Иначе
       ФормаСписка     = Документы[НазваниеПлатежки].ПолучитьФормуСписка(,ПредыдущаяФорма);        
       ОтборСписка     = ФормаСписка.ДокументСписок.Отбор;        
       ЭлементОтбора   = ОтборСписка.Контрагент;
       ЭлементОтбора.Использование     = Истина;        
       ЭлементОтбора.ВидСравнения      = ВидСравнения.Равно;       
       ЭлементОтбора.Значение          = Контрагент;
       Если ФормаСписка.Открыта() Тогда          
           ФормаСписка.Активизировать();       
       Иначе           
           ФормаСписка.Открыть();    
       КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьВходящиеПлатежки(Контрагент, ПредыдущаяФорма) Экспорт
    НазваниеПлатежки = "ПлатежноеПоручениеВходящее";  
    ОткрытьПлатежки(НазваниеПлатежки, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

ПроцедураКоманднаяПанельПереходКДокументамОткрытьИсходящиеПлатежки(Контрагент,ПредыдущаяФорма) Экспорт
    НазваниеПлатежки = "ПлатежноеПоручениеИсходящее";   
    ОткрытьПлатежки(НазваниеПлатежки, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

ПроцедураКоманднаяПанельПереходКДокументамОткрытьСправочникКонтрагенты(Контрагент,ПредыдущаяФорма)  Экспорт
    ФормаЭлемента = Контрагент.ПолучитьФорму("ФормаЭлемента", ПредыдущаяФорма);
    Если ФормаЭлемента.Открыта() Тогда        
       ФормаЭлемента.Активизировать();   
    Иначе        
       ФормаЭлемента.Открыть();    
    КонецЕсли;
КонецПроцедуры

ПроцедураКоманднаяПанельПереходКДокументамОткрытьРеестрСвидетельств(Контрагент, ПредыдущаяФорма) Экспорт
    ФормаСписка     = РегистрыСведений.РеестрЧленовПартнерства.ПолучитьФормуСписка(,ПредыдущаяФорма);   
    ОтборСписка     = ФормаСписка.РегистрСведенийСписок.Отбор;    
    ЭлементОтбора   = ОтборСписка.Контрагент;
    ЭлементОтбора.Использование     = Истина;    
    ЭлементОтбора.ВидСравнения      = ВидСравнения.Равно;   
    ЭлементОтбора.Значение          = Контрагент;
    Если ФормаСписка.Открыта() Тогда       
        ФормаСписка.Активизировать();   
    Иначе        
        ФормаСписка.Открыть();   
    КонецЕсли;
КонецПроцедуры

ПроцедураКоманднаяПанельПереходКДокументамОткрытьСтатусыКонтрагента(Контрагент,ПредыдущаяФорма) Экспорт
    ФормаСписка     = РегистрыСведений.СтатусыКонтрагентов.ПолучитьФормуСписка(,ПредыдущаяФорма);
    ОтборСписка     = ФормаСписка.РегистрСведенийСписок.Отбор;   
    ЭлементОтбора   = ОтборСписка.Контрагент;
    ЭлементОтбора.Использование     = Истина;   
    ЭлементОтбора.ВидСравнения      = ВидСравнения.Равно;  
    ЭлементОтбора.Значение          = Контрагент;
    Если ФормаСписка.Открыта() Тогда       
       ФормаСписка.Активизировать();  
    Иначе       
       ФормаСписка.Открыть();   
    КонецЕсли;
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьСписокСчетов(Контрагент, ПредыдущаяФорма) Экспорт
    Форма = ЖурналыДокументов.ЖурналСчетов.ПолучитьФорму(,ПредыдущаяФорма);   
    ОтборСписка     = Форма.ЖурналДокументовСписок.Отбор;    
    ЭлементОтбора   = ОтборСписка.Контрагент;
    ЭлементОтбора.Использование     = Истина;   
    ЭлементОтбора.ВидСравнения      = ВидСравнения.Равно;  
    ЭлементОтбора.Значение          = Контрагент;
    Если Форма.Открыта() Тогда       
       Форма.Активизировать();    
    Иначе       
       Форма.Открыть(); 
    КонецЕсли;
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамНазад(ЭтаФорма) Экспорт
    ПредыдущаяФорма = ЭтаФорма.ВладелецФормы;   
    Если ТипЗнч(ПредыдущаяФорма) = Тип("Форма") И ПредыдущаяФорма <> Неопределено Тогда        
       ПредыдущаяФорма.Открыть();       
       ЭтаФорма.Закрыть();    
    КонецЕсли;
КонецПроцедуры
//быстрый переход к другим документам }


 

     Из моих наблюдений: типовое контекстное меню в формах списков практически не используется. Контекстное меню, доработанное под задачи Заказчика – используется на 100%. Переход между формами при использовании контекстного меню происходит в два клика (правая, затем левая кнопки мыши) и за две секунды. Отличный результат!

 

2. Использование статистики обращения в базе к контрагентам

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

 Обращения к контрагентам

Рис. 7. Регистр сведений "Статистика обращений".

 

Процедура КонтрагентПриИзменении(Элемент)
     Если ЗначениеЗаполнено(Контрагент) Тогда
        ОтборПоКонтрагенту = ЖурналДокументовСписок.Отбор.Контрагент;        
        ОтборПоКонтрагенту.Установить(Контрагент);
        МодульПро.ЗафиксироватьОбращениеККонтрагенту(Контрагент);
    КонецЕсли;
КонецПроцедуры

Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)    
    МодульПро.КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка);
КонецПроцедуры

 


Процедуры общего модуля представлены ниже.

 

//оптимизация работы - упорядочивание списка контрагентов в поле ввода быстрого поиска
Процедура ЗафиксироватьОбращениеККонтрагенту(Контрагент) Экспорт
    НЗ = РегистрыСведений.ОбращенияККонтрагенту.СоздатьНаборЗаписей(); 
    НЗ.Отбор.Контрагент.Установить(Контрагент); 
    НЗ.Отбор.Период.Установить(ТекущаяДата()); 
    НЗ.Прочитать();
    Запись = ?(НЗ.Количество()=1, НЗ[0], НЗ.Добавить()); 
    Запись.Период = ТекущаяДата(); 
    Запись.Контрагент = Контрагент; 
    Запись.КоличествоОбращений = Запись.КоличествоОбращений + 1;
    НЗ.Записать();
КонецПроцедуры

Процедура ОбнулитьСтатистикуОбращенийККонтрагентам() Экспорт
    Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ 
    | ОбращенияККонтрагенту.Период 
    |ИЗ 
    | РегистрСведений.ОбращенияККонтрагенту КАК ОбращенияККонтрагенту 
    |ГДЕ 
    | ОбращенияККонтрагенту.Период <> &Период";
    Запрос.УстановитьПараметр("Период", НачалоДня(ТекущаяДата()));
    Результат = Запрос.Выполнить(); 
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
       НЗ = РегистрыСведений.ОбращенияККонтрагенту.СоздатьНаборЗаписей(); 
       НЗ.Отбор.Период.Установить(Выборка.Период); 
       НЗ.Записать();
    КонецЦикла;
КонецПроцедуры

 


  Обнуление статистики происходит при завершении работы с программой пользователя с Ролью «ОбнулятьСтатистикуОбращений». Из трех бухгалтеров такую роль имеют любые два бухгалтера из соображений, что в отпуск они уходят по очереди и по одному.
    В формах, где происходит выбор контрагента, переопределено событие ОкончаниеВводаТекста: в выпадающем списке контрагенты упорядочиваются по количеству обращений – как правило, первым в списке появляется контрагент, который только что был выбран в другой форме. Так как в данном списке в названии контрагента отображается город и фамилия руководителя, то в выпадающем списке контрагент определяется однозначно (рис.8 и ниже код программы).

Подбор контрагентов

Рис. 8. Поле быстрого поиска контрагента (быстрый отбор по контрагенту).

 

Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) 
   МодульПро.КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка);
КонецПроцедуры

 

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

 

Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) Экспорт
    СтандартнаяОбработка = Ложь;
    Запрос = Новый Запрос;    
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ    
    |   Контрагенты.Ссылка КАК Ссылка,    
    |   Контрагенты.Наименование,    
    |   Контрагенты.ИНН,    
    |   Контрагенты.ПометкаУдаления,   
    |   ЕСТЬNULL(СтатистикаОбращений.КоличествоОбращений, 0) КАК КолвоОбращений    
    |ИЗ    
    |   Справочник.Контрагенты КАК Контрагенты    
    |       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ    
    |           ОбращенияККонтрагентуСрезПоследних.Контрагент КАК Контрагент,    
    |           ОбращенияККонтрагентуСрезПоследних.КоличествоОбращений КАК КоличествоОбращений    
    |       ИЗ    
    |           РегистрСведений.ОбращенияККонтрагенту.СрезПоследних КАК ОбращенияККонтрагентуСрезПоследних) КАК СтатистикаОбращений    
    |       ПО Контрагенты.Ссылка = СтатистикаОбращений.Контрагент    
    |ГДЕ   
    |   (Контрагенты.Наименование ПОДОБНО ""%"" + &Текст + ""%""   
    |           ИЛИ Контрагенты.ИНН ПОДОБНО ""%"" + &Текст + ""%"")   
    |   И Контрагенты.ЭтоГруппа = ЛОЖЬ    
    |   И Контрагенты.ПометкаУдаления = ЛОЖЬ   
    |   
    |УПОРЯДОЧИТЬ ПО    
    |   КолвоОбращений УБЫВ,   
    |   Ссылка   
    |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("Текст", Текст);
    Результат = Запрос.Выполнить();    
    Выборка = Результат.Выбрать();
    Если Выборка.Количество()=1 И Выборка.Следующий() Тогда        
       Значение = Выборка.Ссылка;        
       Возврат;    
    КонецЕсли;
    Значение = Новый СписокЗначений;
    Если Выборка.Количество() >= 50 Тогда //выгрузим первые 49 организаций согласно статистики обращений и сообщим об этом пользователю
        Значение.Добавить(Справочники.Контрагенты.ПустаяСсылка(), " ... НАЙДЕНО  БОЛЕЕ  50  ЭЛЕМЕНТОВ!  ЗАДАЙТЕ  ДРУГУЮ  СТРОКУ  ПОИСКА ...");
        Колво = 1;
        Пока Выборка.Следующий() И Колво < 50 Цикл
            Адрес = ПолучитьАдресИРуководителя(Выборка.Ссылка);
            Значение.Добавить(Выборка.Ссылка, "" + ВРЕГ(СокрЛП(Выборка.Наименование)) + ", ИНН " + Выборка.ИНН + "   "                                
            + Адрес, Выборка.ПометкаУдаления);
            Колво = Колво + 1;
        КонецЦикла;
    Иначе
        Пока Выборка.Следующий() Цикл
            Адрес = ПолучитьАдресИРуководителя(Выборка.Ссылка);
            Значение.Добавить(Выборка.Ссылка, "" + ВРЕГ(СокрЛП(Выборка.Наименование)) + ", ИНН " + Выборка.ИНН + "   "                                
            + Адрес, Выборка.ПометкаУдаления);
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

 

 

   После внедрения статистики обращения подбор контрагента в формах списков и отчетах ускорился с 20 секунд до 3 секунд. Отличный результат!

  На мой взгляд, статистику обращений можно с успехом внедрить в отдел продаж для менеджеров, например как элемент подсистемы CRM. Контекстное меню с успехом можно внедрять в любой отдел, программируя свою функциональность, соответствующую каждому отделу. :)

Всем всего доброго и успехов в работе!

Центр автоматизации, г. Казань


См. также:

Как эффективно использовать Инфостарт NEW!

Список реализаций + структура подчиненности + реестр документов SALE'1sm

Список заказов поставщикам + структура подчиненности SALE'1sm

Список заказов покупателей + структура подчиненности SALE'1sm

Договоры для 1с-ника ТОП-скачиваний

Сетка расписания (Планировщик) нестанДАрт

Два механизма, которые ускорили работу бухгалтеров в 1С нестанДАрт

Мини-CRM для УТ 10.3

Расчет банковских (рабочих) дней нестанДАрт

Шаблоны кода в режиме 1С:Предприятие SALE'1sm

Доработка конфигурации Конвертация Данных

Планирование платежей. Прогнозирование прибылей и убытков

Ввод показателей план-факта БП 3.0 Know-how

Инвентаризация личного опыта Для новичков 1С

Большие запросы: взгляд на проблему нестанДАрт

Технология создания коммерческих разработок Know-how

Андроид-решение для создания заказов в 1С Know-how + нестанДАрт

Отчет Остатки и цены

Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200

Загрузка данных о розничных продажах из магазинов Intimissimi (Интимиссими) и Calzedonia (Кальцедония)

Доработки обмена "УТ 10.3 - интернет-магазина Shop-Script"

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

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Antel 2 13.06.15 19:12 Сейчас в теме
Увидел надписи в "капсе" на картинках и дальше смотреть не стал.

П.С. бухгалтера такие тупые что прочитать без капса не смогут
корум; sergelemon; webester; +3 3 Ответить
2. vasyak319 139 13.06.15 20:30 Сейчас в теме
(1) Antel, чувство прекрасного у автора, конечно, своеобразное, но идеи мне понравились. Не понял только, WTF "обнуление статистики при завершении работы пользователя с ролью".
17. nick_krsk 16 25.06.15 13:08 Сейчас в теме
(2) vasyak319, чтобы РС не засорять, видимо.
4. MaxDavid 124 13.06.15 23:26 Сейчас в теме
(1) Antel,
Увидел надписи в "капсе" на картинках и дальше смотреть не стал.
Полагаю, капс понадобился для быстрого визуального отличия стандартных пунктов контекстного меню от добавленных.
5. webester 33 14.06.15 06:24 Сейчас в теме
(4)То что буквы разные, этого недостаточно? В последнем скрине, в строке поиска, он что от чего отличает? Какими то 90ми пахнуло сразу и пенсионка в ДОСовском окне. Хардкодить ссылки в коде, типа "Организации.НайтиПоКоду("000000001")" тоже еще та глупость, обсудили уже сотню другую раз. Код не отформатирован и свален в кучу, считаю проявлением банальной лени и наплевательством выкладывание его в таком виде.
Hamsik; корум; u_n_k_n_o_w_n; Зеленоград; sergelemon; +5 1 Ответить
6. webester 33 14.06.15 06:27 Сейчас в теме
(5)А так это старый добрый Rustig, претензии сняты. не сразу узнал маэстро по почерку.
15. LineykaSBK 1 17.06.15 12:01 Сейчас в теме
(6) webester,
странное у Вас представление о претензиях. Сначала предъявил, потом не предъявил :+)
19. hromovanton 6 24.09.15 09:35 Сейчас в теме
(6) webester, А если бы это был не "старый добрый Rustig", то поливали бы дальше? !
u_n_k_n_o_w_n; +1 Ответить
3. script 226 13.06.15 23:19 Сейчас в теме
Предложу идею.

Задача
1. Необходимо в конфигурации Бухгалтерия 8.2. иметь журнал всех документов купателей, а именно: счета, реализации, акты сверок, налоговые, платежки, прих. кассовые ордера, и т.д.
2. Необходимо иметь возможность переходить в данный журнал из формы любого документа или из формы списка любого документа.
3. При переходе в полный журнал необходимо устанавливать отбор по контрагенту, который берется из документа источника.

Решение.
1. Здесь описывать нечеого.
2. Возникает необходимость изменять формы документов и формы списков, добавляя в командную панель новую кнопку "Перейти в полный журнал". Или добавиьь новый пункт меню в меню "Перейти", как это зделано у автора статьи.

Вот здесь остановимся. Все согласятся что менять кучу объектов в типовой конфе -это не по фэншую.
Предлагаю добавить новый объект конфигурации, а именно КритерийОтбора.ПолныйЖурнал.
Для нового объекта создаем форму, в которой приоткрытии пропишем переход в полный журнал с отбором.
Собственно все. вый объект автоматически добавиться в меню " Перейти".

7. Rustig 1587 14.06.15 08:20 Сейчас в теме +0.7 $m
(3)
2. Необходимо иметь возможность переходить в данный журнал из формы любого документа или из формы списка любого документа.

1) используя только типовые механизмы платформы (в том числе, критерий отбора) у вас не получится перейти в "полный журнал" из формы отчетов, не получится реализовать кнопку "Назад", да и вообще речь идет не о переходе в журнал документов, а о реализации "правой кнопки" мыши "удобно и практично", как это реализовано в Windows.
2) критерий отбора - отличный механизм, только ведь я написал что на данный момент измененная конфа не обновляется, что изложенные идеи возможно будут интересны для самописных и отраслевых решений, а вы пытаетесь "придумать", как это реализовать на типовой БП с минимальными потерями автоматического обновления. Раньше в конфигурациях не было возможности создавать собственные механизмы "Ввода на основании", не изменяя конфигурацию - сейчас это возможно реализовывать через "Внешние отчеты и обработки". Никто не пытается "натянуть" механизм "Ввода на основании" на старые механизмы платформы 8.2. Возможно, в будущем в платформе 8.3 будет реализован механизм, когда через "Внешние отчеты и обработки" мы сможем создавать свои командные панели или свои меню в этих панелях...
8. vasyak319 139 15.06.15 09:39 Сейчас в теме
(3) script, во-первых, чтобы добавить в формы документов БП2.0 (ну нету в природе конфигурации "Бухгалтерия 8.2") кнопку сами формы менять не нужно. Во-вторых, критерий отбора ДокументыПоДоговоруКонтрагента там уже есть. Не совсем то, но использовать для этих целей можно. В-третьих, вы долго будете в документах БП2.0 искать меню "Перейти" - нету его там.
10. script 226 15.06.15 13:57 Сейчас в теме
(8) vasyak319,
А у меня есть, потому что я в основном работаю с Бухгалтерей 8.2 ред 1.2 для Украины. Там везеде, в журналах, такая кнопка присутствует.
9. chmv 15.06.15 09:55 Сейчас в теме
11. gubanoff 50 15.06.15 14:08 Сейчас в теме
Статистика - это прекрасно. На самом деле делается быстро, а помочь может реально. Плюс программа превращается из калькулятора в подобие искусственного интеллекта, мне кажется, за этим будущее.
Ознакомился с публикациями автора, автор склонен к нестандартным решениям :)
goodron; Rustig; serg1983; Serg O.; pt_olga; +5 Ответить
12. DrAku1a 1403 17.06.15 04:06 Сейчас в теме
НЕ, РЕАЛЬНО, ЗАЧЕМ СТОЛЬКО "КЭПСА" ВЕЗДЕ? У ВАС НАСТОЛЬКО СЛЕПЫЕ БУХГАКТЕРЫ???

P.S. А идеи правильные и отличные!
14. Rustig 1587 17.06.15 09:15 Сейчас в теме
(12) женщины-бухгалтера мелкий, то есть стандартный шрифт, плохо видят, все в очках. Они не работают за ноутбуками, у которых экран по факту расположен ближе, чем отдельно стоящий монитор на столе. Стол широкий, монитор на краю стола, я лично сам не вижу - приходится приближать лицо к экрану. :(
Я в конфигурации изменил стандартный стиль - увеличил шрифт до 10, вы этого видимо не заметили, что журналы документов тоже крупнее, чем обычно, и отчеты крупнее. Также в конфигурации имеется служебная обработка, которая любой текст переводит в верхний регистр, потому что это часто приходилось делать...
Вообще что для вас "капса", для этих женщин-бухгалтеров нормальный размер шрифта.
Designer1C; +1 Ответить
16. tramontana 72 19.06.15 12:04 Сейчас в теме
(14) странное у вас представление о бухгалтерах. Прям сплошь слепые бабки, которые не знают, что монитор можно двигать.
13. Mantis 136 17.06.15 07:31 Сейчас в теме
Спасибо, идеи интересные.
18. fomix 26 25.06.15 14:52 Сейчас в теме
Плюсую, потому, что рад видеть в авторе разработчика, который не только о красоте кода заботится! Это, к сожалению, становится редкостью в наших рядах...
Оставьте свое сообщение

См. также

Список заказов покупателей (новый взгляд) Промо

Рабочее место Монитор заказов Оптовая торговля Монитор заказов Оптовая торговля v8 v8::ОУ КА1 УТ10 УУ Платные (руб)

Внешняя обработка "Список заказов покупателей". Фишка в том, что на одной форме отображается структура связанных документов с указанием контрагента. В этом окне также есть список товаров по заказу. Видны статусы заказов: исполнен, выполняется, черновик.

2200 руб.

16.08.2017    27158    70    60    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    28068    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    24737    John_d    22    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    19028    kuzyara    33    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

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

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    8589    Sibars    19    

Таблица значений. Нюансы

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

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    34179    Yashazz    50    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

06.09.2019    51948    rpgshnik    63    

Использование программных перечислений, ч.1: строковые константы Промо

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

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    37571    unichkin    74    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    50552    ids79    54    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    29146    YPermitin    24    

Три костыля. Сказ про фокусы в коде

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

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    25750    YPermitin    80    

Вспомогательные инструкции в коде 1С Промо

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

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    30580    tormozit    100    

Отслеживание выполнения фонового задания

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

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

17.08.2019    31909    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    85520    ids79    49    

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    36554    avalakh    22    

Оформление и рефакторинг сложных логических выражений Промо

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

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

20.09.2012    78218    tormozit    131    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    61780    ids79    11    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    36373    ids79    27    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

09.07.2019    26384    YPermitin    14    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    48695    tormozit    41    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    19791    SeiOkami    50    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    53665    ids79    25    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    25402    dmurk    145    

Список заказов поставщикам (новая форма) + два ноу-хау для разработчиков Промо

Рабочее место Дебиторская и кредиторская задолженность Оптовая торговля Дебиторская и кредиторская задолженность Оптовая торговля v8 v8::ОУ КА1 УТ10 УУ Платные (руб)

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

3000 руб.

31.08.2017    21635    18    18    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

16.05.2019    43999    YPermitin    30    

Выгрузка документа по условию

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

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16130    m-rv    2    

Как прикрутить ГУИД к регистру сведений

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    20387    m-rv    17    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

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

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    45041    tormozit    74    

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    35739    ellavs    126    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

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

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    27601    ellavs    90    

Трюки с внешними источниками данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    31694    YPermitin    53    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    30885    m-rv    21    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    40539    ids79    9    

Как эффективно использовать Инфостарт

Личная эффективность Бесплатно (free)

Рекомендации, фишки, публикации Инфостарт

28.01.2019    11284    Rustig    67    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

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

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

05.12.2017    28355    itriot11    34    

Новый подход к обмену данными EnterpriseData

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

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

14.12.2018    42050    ids79    72    

Программное заполнение пользовательских параметров и отборов СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.11.2018    48832    Unk92    25    

Счет на оплату с НДС 20%

Печатные формы документов Оптовая торговля Оптовая торговля v8 v8::ОУ БП2.0 УТ10 Абонемент ($m)

Счет на оплату с НДС 20% и уведомлением, что НДС изменится с 01.01.2019г.

1 стартмани

12.11.2018    11359    27    Rustig    13    

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

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

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

27.01.2016    76697    Serginio    108    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    35194    ids79    40    

Планирование платежей. Прогнозирование прибылей и убытков. Часть 1 про кассовый разрыв

Финансовые Финансовый учет и бюджетирование (FRP) Финансовый учет и бюджетирование (FRP) v8 v8::ОУ УТ10 УУ Абонемент ($m)

Кассовый разрыв. Планирование поступлений от клиентов, списаний налогов и оплат поставщикам. И как следствие - прогнозирование прибыли или убытков.

2 стартмани

21.10.2018    10512    1    Rustig    58    

Ввод показателей план-факта через табличный документ

Обработка документов Финансовый учет и бюджетирование (FRP) Финансовый учет и бюджетирование (FRP) v8 v8::БУ v8::УФ БП3.0 УУ Абонемент ($m)

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

3 стартмани

10.10.2018    9315    19    Rustig    10    

Доработки обмена "УТ 10.3 - интернет-магазина Shop-Script"

WEB Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 v8::ОУ УТ10 УУ Абонемент ($m)

Доработки типового обмена между УТ 10.3 и интернет-магазином Shop-Script на движке Webasyst: выгрузка нулевого количества товара, номенклатурных групп вместо групп номенклатуры и дополнительного описания номенклатуры.

2 стартмани

07.09.2018    9115    2    Rustig    0    

Группировка товаров при печати чеков ККМ

Печатные формы документов ККМ Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 КА1 УТ10 БУ Абонемент ($m)

Товары группируются по своей иерархии товаров. Длина чека ККМ сокращается в разы. Общая сумма чека ККМ и общее количество товаров не изменяется.

2 стартмани

07.09.2018    8352    0    Rustig    13    

Произвольный код в фоновом режиме

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

Задача: реализовать выполнение произвольного кода в фоновом режиме без изменения конфигурации, т.е. во внешней обработке.

03.09.2018    28398    zarankony    42    

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C

Математика и алгоритмы Практика программирования v8 Россия Бесплатно (free)

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

23.08.2018    38958    Rain88    46