Стандартные конфигурации 1С: дополнение и исправление
Добрый день всем, кто читает этот выпуск.
В первую очередь должен сказать огромное спасибо Михаилу за поддержку моей идеи.
Теперь у рассылки 29(!!!) подписчиков, включая меня :)
Думаю, что все, кто читает этот выпуск, знают, о ком идет речь. Если кто-то вдруг
через пару лет залезет в архив, то см. здесь.
Сперва немного повтора, т.к. вряд ли кто-то читал первый и второй выпуски.
Цель данной рассылки - обмен информацией по стандартным конфигурациям 1С. Не
секрет, что они далеки от потребностей живых организаций, и программистам
приходится прилагать массу усилий, чтобы "заточить" конфигурацию под
конкретного пользователя. Одни организации работают для этого с франчайзи, в
других тем же занимаются штатные или приходящие программисты. Франчайзи
немного легче, т.к. они имеют возможность сравнивать несколько фирм, у них
есть доступ к закрытой информации, они даже могут взаимодействовать с
разработчиками. У остальных такой возможности нет.
Предвижу такой вопрос: "Зачем еще один ресурс, ведь есть разные клубы,
например, http://1c.hippo.ru?" Конечно, такие
клубы есть. Но... во-первых, не у всех есть время и/или возможность проводить
в таких клубах много времени, рассылка же будет приходить по почте. Во-вторых,
у данной рассылки будет более узкая специализация.
Обсуждаться будут те вопросы, которые будут интересны подписчикам (ну и мне,
конечно :) Кроме того, всерьез рассчитываю на соавторство подписчиков. Манией
величия не страдаю, естественно, я знаю и могу разобраться не во всем, да и
времени на это нужно прорву. Конечно, буду подкидывать и отсебятину, как
вопросы, так и ответы. Просто информацию, которую сочту интересной.
Отдельно скажу о сайте
http://blue-bird-ltd.narod.ru.
Сайт предназначен для размещения файлов, которые не могут быть прикреплены к
рассылке. В первую, вторую и третью очередь это будут различные примеры.
Пока-что я не планирую развитие сайта как самостоятельного ресурса, хотя кто
знает...
Ну а теперь то, ради чего эта рассылка.
Сегодня я привожу некоторые соображения
по переносу сальдо в ЗиК 7.70.235
Сальдо на начало месяца в "двойке" состоит из двух видов расчета -
НачальноеСальдоЗадолженность и НачальноеСальдоОкругления. Как обычно, все рассчитано
на то, что предприятие вовремя выдает зарплату, а если задерживает,
то платит компенсацию :), уволенных рассчитывают в день увольнения :))), ну и т.д.
Еще интересный момент - удержания не должны превышать начисления (текущего месяца).
Ну где Вы видели такую фирму? Они существуют, наверное, только в воображении
программистов 1С.
Ну и, конечно, скорость работы. При рассчете сальдо программа перелопачивает такой
объем информации, что только диву даешься: ЗАЧЕМ???
Далее, а что такое эти два сальдо? Зачем их столько? Первое - это задолженность предприятия.
Второе - это невыплаченные копейки. Ну и долг сотрудника, если он есть. Первое сальдо
всегда положительно. Второе может быть любым. Спрашивается: а будет ли все это работать,
если будет только второе сальдо? БУДЕТ!!! И еще как.
Для этого выкидываем документ "Накопленная задолженность". Т.е. просто им не пользуемся.
Если в предыдущих месяцах Вы им все-таки пользовались - ничего страшного. Просто не делайте этого впредь.
Далее пишем документ "Начало месяца", который на каждого сотрудника вводит вид расчета
НачальноеСальдоОкругления. Модуль расчета придется немного подредактировать, а также
в глобальном модуле закоментировать строчку, вводящую этот вид расчета при формировании
документа "НачислениеЗарплаты". Зачем так? А да просто так понятнее бухгалтерам.
Сделали начало месяца - вот оно сальдо. Его даже можно вводить автоматом при смене
периода.
Оригинал процедуры любой может посмотреть сам. Я привожу здесь исправленный.
Процедура ПровестиРасчет()
// Если запись исправлена или фиксирована, то ее не рассчитываем
Если (Исправлена = 1) или (Фиксирована = 1) Тогда
глСообщениеТрассировки(глСообщенияТрассировки, "" + ?(Исправлена = 1,"Результат записи исправлен вручную","Запись фиксирована") + ". Расчет не проводился.", , 1);
Возврат
КонецЕсли;
//Результат = глСальдоОкругления(Объект,ДатаНачала);
// Автор алгоритма Руденко Э.В.
ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
Сумма = 0;
Сальдо = 0;//Сальдо на начало прошлого месяца
Касса = 0;
БылоНачислено = 0;
БылоУдержано = 0;
ВозвратВКассу = 0;
ЖрнЗарплата.ВыбратьПериодПоОбъекту(Объект,ДатаНачала - 1);
Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл
Если ЖрнЗарплата.ВидРасч = ВидРасчета.ВыплатаЗарплаты Тогда
Касса = Касса + ЖрнЗарплата.Результат;
ИначеЕсли (ЖрнЗарплата.ВидРасч = ВидРасчета.НачальноеСальдоЗадолженность) Тогда
Сальдо = Сальдо + ЖрнЗарплата.Результат;
ИначеЕсли (ЖрнЗарплата.ВидРасч = ВидРасчета.НачальноеСальдоОкругления) Тогда
Сальдо = Сальдо + ЖрнЗарплата.Результат;
ИначеЕсли (ЖрнЗарплата.ВидРасч = ВидРасчета.Возврат) Тогда
ВозвратВКассу = ВозвратВКассу + ЖрнЗарплата.Результат;
ИначеЕсли ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления) = 1 Тогда
БылоНачислено = БылоНачислено + ЖрнЗарплата.Результат;
ИначеЕсли ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеУдержания) = 1 Тогда
БылоУдержано = БылоУдержано + ЖрнЗарплата.Результат;
КонецЕсли;
КонецЦикла;
Результат = Сальдо + БылоНачислено - БылоУдержано - Касса + ВозвратВКассу;
КонецПроцедуры // ПровестиРасчет()
Все это должно работать на любой модификации стандартной конфигурации.
Уважаемые подписчики! Для меня очень важно знать Ваше мнение о содержании рассылки.
Присылайте Ваши пожелания - я буду обязатльно их учитывать! Любые материалы, которые
Вы пришлете, обязательно попадут в рассылку, и их смогут прочитать другие. Сами понимаете,
случайный человек на такую муристику не подпишется.