Предотвращение ошибок в материальном учете Бухгалтерии 7.7

17.01.10

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

Два небольших участка кода для предотвращения ошибок бухгалтеров в учете материальных запасов.
Для конфигурации 1С 7.7 Бухгалтерский учет 4.5 релиз 510 (будет работать и на других релизах)

В документах стандартной конфигурации имеются две возможности запутаться с учетом материалов: (работу с операциями в ручную нерассматриваем :))

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

2. Произвести списание/передачу материала два раза, обычно задним числом.

Представленный здесь код позволяет блокировать/предупредить эти ошибки.

 

1. Для предупреждения первой ошибки необходимо в модуль формы документа АвансовыйОтчет вставить процедуру:



//Начало изменений
Процедура ПриОкончанииРедактированияСтроки()
 Если (
КоррСчет.ПринадлежитГруппе(СчетПоКоду("10")) = 1
   (
КоррСчет.ПринадлежитГруппе(СчетПоКоду("10.11")) = 0
    (
КоррСчет <> СчетПоКоду("10.7")) Тогда
     Если
Субконто1.Выбран() = 0 Тогда
        
Сообщить("Не выбран материал");
     
СтатусВозврата(0);
      Возврат;
     КонецЕсли;
     Если
Субконто2.Выбран() = 0 Тогда
        
Сообщить("Не выбрано место хранения");
     
СтатусВозврата(0);
      Возврат;
     КонецЕсли;
     Если
Субконто1.СубСчет10 <> КоррСчет Тогда
        
Предупреждение("Указано поступление на счет: "+Строка(КоррСчет)+разделительстрок+
     
"Однако выбранный материал учитывается на счете: "+Строка(Субконто1.СубСчет10)+разделительстрок+
     
"Исправьте !");
     
СтатусВозврата(0);
      Возврат;
     КонецЕсли;
 КонецЕсли;
КонецПроцедуры
//Конец изменений

 

Вставить процедуру можно в любое место, как ориентир смотри картинку "Вставка в модуль формы Авансового отчета"

 

2. Для предупреждения второй ошибки необходимо в модуль проведения документа ТребованиеНакладная вставить два блока. При исходном тексте это строка 44 и строка 138 соответственно:

строка44:

//44я строка
//Начало изменений 1
ПсД = СоздатьОбъект("Документ");
ПсД.ОбратныйПорядок(1);
ПсД.ВыбратьДокументы();
Пока (
ПсД.ПолучитьДокумент() = 1)и(ПсД.Проведен() = 0) Цикл
КонецЦикла;
ДатаНачалаД = ДатаДок;
ДатаКонцаД = ПсД.ДатаДок;
Если
ДатаНачалаД > ДатаКонцаД  Тогда
   
ДатаКонцаД = ДатаНачалаД;
КонецЕсли;
Если
ДатаКонцаД < ТекущаяДата() Тогда
   
ДатаКонцаД = ТекущаяДата();
КонецЕсли;
Если
ДатаКонцаД > КонецРассчитанногоПериодаБИ() Тогда
 
ДатаКонцаД = КонецРассчитанногоПериодаБИ();
КонецЕсли;
БИм = СоздатьОбъект("БухгалтерскиеИтоги");
БИм.ИспользоватьСубконто(ВидыСубконто.Материалы, СписокМатериалов, 2);
БИм.ИспользоватьСубконто(ВидыСубконто.МестаХранения);
БИм.ВключатьСубсчета(-1);
БИм.ВыполнитьЗапрос(ДатаНачалаД,ДатаКонцаД, "10",,,,"Операция","СК");
//Конец изменений 1

 

строка 138:

 

//138я строка, с первой вставкой 165я строка
//Начало изменений 2
Если ТаблицаОстатков.Материал.Вид() = "Материалы" Тогда
 Если
БИм.ПолучитьСчет(, ТаблицаОстатков.СчетУчета) = 1 Тогда
  Если
БИм.ПолучитьСубконто(1,, ТаблицаОстатков.Материал) = 1 Тогда
  
ОстатокТекущий = КоличествоНаСкладе;
  
СписаниеТекущее = ТаблицаОстатков.КоличествоОтпущено;
  
ПоступилоПосле = 0;
  
СписаноПосле = 0;
   Если
БИм.ПолучитьСубконто(ВидыСубконто.МестаХранения,, МестоХранения) = 1 Тогда
   
БИм.ВыбратьПериоды();
   
ДЧас = 0; ДМин = 0; ДСек = 0;
   
ПолучитьВремя(ДЧас,ДМин,ДСек);
   
ДокВремя = ДЧас*3600 + ДМин*60 + ДСек;
    Пока
БИм.ПолучитьПериод() = 1 Цикл
    
ПЧас = 0; ПМин = 0; ПСек = 0;
    
БИм.Операция.ПолучитьВремя(ПЧас,ПМин,ПСек);
    
ПериодВремя = ПЧас*3600 + ПМин*60 + ПСек;
     Если
ДатаДок = БИм.Операция.ДатаОперации Тогда
      Если
ДокВремя <= ПериодВремя Тогда
      
ПоступилоПосле = ПоступилоПосле + БИм.ДО("К");
      
СписаноПосле = СписаноПосле + БИм.КО("К");
      КонецЕсли;
     Иначе
     
ПоступилоПосле = ПоступилоПосле + БИм.ДО("К");
     
СписаноПосле = СписаноПосле + БИм.КО("К");
     КонецЕсли;
    КонецЦикла;
   КонецЕсли;
   Если (
ОстатокТекущий + ПоступилоПосле)<(СписаниеТекущее + СписаноПосле) Тогда
      
БИм.ВыбратьПериоды();
   
ФлагМ = 1;
   
ДокМ = "";
    Пока (
БИм.ПолучитьПериод() = 1)и(ФлагМ = 1) Цикл
    
ПЧас = 0; ПМин = 0; ПСек = 0;
    
БИм.Операция.ПолучитьВремя(ПЧас,ПМин,ПСек);
    
ПериодВремя = ПЧас*3600 + ПМин*60 + ПСек;
     Если
ДатаДок = БИм.Операция.ДатаОперации Тогда
      Если
ДокВремя <= ПериодВремя Тогда
       Если (
БИм.СНД("К") + БИм.ДО("К")) < (БИм.КО("К") + СписаниеТекущее) Тогда
          
ДатаКонцаД = БИм.Операция.Документ.ДатаДок;
       
ДокМ = Строка(БИм.Операция.Документ);
       
ФлагМ = 0;
       КонецЕсли;
      КонецЕсли;
     Иначе
      Если (
БИм.СНД("К") + БИм.ДО("К")) < (БИм.КО("К") + СписаниеТекущее) Тогда
         
ДатаКонцаД = БИм.Операция.Документ.ДатаДок;
      
ДокМ = Строка(БИм.Операция.Документ);
      
ФлагМ = 0;
      КонецЕсли;
     КонецЕсли;
    КонецЦикла;
      
ТекстМ = "Для материала "+Строка(ТаблицаОстатков.Материал)+" по дату "+Строка(ДатаНачалаД)+" время "+Строка(ДЧас)+":"+Строка(ДМин)+":"+Строка(ДСек)+разделительстрок+
     
" на складе "+Строка(МестоХранения)+" имеется отстаток "+Строка(ОстатокТекущий)+" "+ТаблицаОстатков.Материал.ЕдиницаИзмерения+разделительстрок+
     
"Позже имеется поступление "+Строка(ПоступилоПосле)+" "+ТаблицаОстатков.Материал.ЕдиницаИзмерения+разделительстрок+
     
"И списание (перемещение) "+Строка(СписаноПосле)+" "+ТаблицаОстатков.Материал.ЕдиницаИзмерения+разделительстрок+
     
"По документу списывается (перемещается) всего "+Строка(СписаниеТекущее)+" "+ТаблицаОстатков.Материал.ЕдиницаИзмерения+разделительстрок+
     
""+разделительстрок+
     
Строка(ОстатокТекущий)+" - "+Строка(СписаниеТекущее)+" + "+Строка(ПоступилоПосле)+" - "+Строка(СписаноПосле)+" = "+
     
Строка((ОстатокТекущий + ПоступилоПосле) - (СписаниеТекущее + СписаноПосле))+разделительстрок+
     
"На дату "+Строка(ДатаКонцаД)+" будут отрицательные остатки !";
      Если
ФлагМ = 0 Тогда
         
ТекстМ = ТекстМ + разделительстрок + "После документа: "+ДокМ;
      КонецЕсли;
    Если
Вопрос(ТекстМ+"Продолжать ?", 4, 10) <> 6 Тогда
       
глНеПроводить(Контекст, ТекстМ);
     Возврат;
    КонецЕсли;
   КонецЕсли;
  КонецЕсли;
 КонецЕсли;
КонецЕсли;
//Конец изменений 2

..

Представленный код не вностит изменений в базу данных.

В первом случае блокировка безусловная + контроль указания места хранения и собственно материала.

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

 

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

Имем взаимную экономию нервов и времени.

См. также

SALE! 20%

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

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

28500 22800 руб.

21.04.2017    90178    105    39    

190

1С:Фото номенклатуры 7.7 - решение для работы с фотографиями номенклатуры в 1С:7.7 (включая формат PNG)

Работа с интерфейсом Логистика, склад и ТМЦ Платформа 1С v7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".

5000 руб.

18.10.2022    5161    1    45    

3

КБ99: ГИС Меркурий + 1С 7.7 / 8.2 / 8.3 = Дружба

Оптовая торговля Производство готовой продукции (работ, услуг) Логистика, склад и ТМЦ Обмен с ГосИС Оперативный учет 7.7 Оперативный учет Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 1.6 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Бухгалтерия 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 1С:Производство+Услуги+Бухгалтерия Сельское хозяйство и рыболовство Оптовая торговля, дистрибуция, логистика Пищевая промышленность Россия Управленческий учет Платные (руб)

Модуль интеграции устанавливается в вашу 1С. Сокращает время оформления ветсправок с 8 часов до 30 минут в день. Проверяет ошибки в каждом документе. Обмен данными с ФГИС Меркурий из 1С через ВетИС API

36000 руб.

14.04.2017    51654    99    44    

34

Прием металлолома. Конфигурация для 1С 7.7

Логистика, склад и ТМЦ Оперативный учет 7.7 Бытовые услуги, сервис Россия Управленческий учет Платные (руб)

Вы занимаетесь приемом металлолома? Тогда эта конфигурация для платформы 1С:Предприятие 7.7 Оперативный учет.- именно для Вас. Сделайте свой учет металлолома понятным, а работу приятной. Не требует специального обучения, все доступно и понятно.

3600 руб.

09.01.2017    39438    44    0    

40

Расширение справочника номенклатуры 1С: 7.7

Логистика, склад и ТМЦ Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 1С:Производство+Услуги+Бухгалтерия Абонемент ($m)

Подсистема для 1С: 7.7, предназначена для расширения возможностей справочника номенклатуры. Дополнительная альтернативная структура каталога. Привязка одного товара к нескольким группам. Удобный редактор привязок.

10 стартмани

25.02.2016    31295    2    spy-83    5    

6

Производство глазами ветврача. Оформление ветеринарно-сопроводительных документов в системе Меркурий (Часть 2)

Производство готовой продукции (работ, услуг) Логистика, склад и ТМЦ Обмен с ГосИС Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная 7.7 1С:Управление производственным предприятием 1С:Производство+Услуги+Бухгалтерия Сельское хозяйство и рыболовство Пищевая промышленность Беларусь Россия Казахстан Управленческий учет Абонемент ($m)

Для предприятия по производству пищевых продуктов объясняется, как выполнять типовые операции в системе Меркурий. Зачем нужен Меркурий? C его помощью можно оформлять ветсвидетельства бесплатно. Уточните у руководства, сколько денег платите ветеринарам. Например, сеть Перекресток платит 400 млн. руб. в год.

5 стартмани

19.01.2016    84203    axxell    11    

22

Печать универсального передаточного документа (УПД) из поступления в Бухгалтерии 7.7

Печатные формы Документооборот и делопроизводство (СЭД) Логистика, склад и ТМЦ Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Абонемент ($m)

Внешняя обработка, позволяющая выводить на печать УПД из документа "Поступление товаров". Сделано в виде внешней обработки, а не печатной формы, потому что в типовой форме поступления отсутствует кнопка "Печать".

2 стартмани

06.05.2015    23717    35    cargobird    5    

28
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mastakw 171 16.01.10 17:28 Сейчас в теме
Как раскрасить код в стиле 1С ??
неразобрался :(
karabas1980; +1 Ответить
2. karabas1980 16.01.10 19:31 Сейчас в теме
Реализовал подобное, но тут более красивее. Спасибо
3. lesna 17.01.10 00:40 Сейчас в теме
"Предотвращение ошибок в матеральном учете "
улыбнуло ;)
4. mastakw 171 17.01.10 11:15 Сейчас в теме
(3)
:) Поправил, спасибо за внимательность.
5. Jers 17.01.10 11:44 Сейчас в теме

Если Вопрос(ТекстМ+"Продолжать ?", 4) = 7 Тогда
глНеПроводить(Контекст, ТекстМ);
Возврат;
КонецЕсли;


Нельзя такие вопросы вставлять в модуль проведения документа. Юзер на вопрос не ответил, а пошел обедать. И приплыли, работа всех других юзеров встала.

За идею - плюсик.
6. mastakw 171 17.01.10 12:29 Сейчас в теме
(5)
Jers прав - Спасибо.
Посему надо добавить таймаут сек на 10-15.
исходный: Вопрос(ТекстМ+"Продолжать ?", 4) = 7
замена: Вопрос(ТекстМ+"Продолжать ?", 4, 10) <> 6

основной текст изменен.
7. mastakw 171 17.01.10 14:51 Сейчас в теме
8. bb1962 990 20.01.10 09:32 Сейчас в теме
Не всегда можно, да и не всегда нужно вносить изменения в типовую.
Есть другой способ борьбы с подобными проблемами:
http://www.profiufa.ru/express/decrypt7.shtml
http://www.infostart.ru/public/20684/
9. mastakw 171 20.01.10 12:47 Сейчас в теме
(8)
Можно обвесить конфу кучей внешних обработок ...
Но у них есть главный минус - результат будет лишь при ее выполнении, что сделать вовремя всегда забывают.
А при операциях закрытии месяца эти ошибки и так видны.
И придется Исправлять.

Уж лучше чтобы их небыло изначально.
Оставьте свое сообщение