Имя: Пароль:
1C
1C 7.7
v7: 1с 7.7 Бухгалтерская справка задним числом
0 kobzon
 
11.07.13
08:30
Подскажите кто-нибудь почему в 1с 7.7 конфигурация ПУБ, документ бухгалтерская справка не проводится, когда после нее созданы документы?
Пишет: Недостаточно прав доступа.
Как то это можно обойти? Или будут последствия?
1 ALFkz
 
11.07.13
08:37
права выставить.
2 1Сергей
 
11.07.13
08:37
Последствия будут обязательно
3 kobzon
 
11.07.13
08:39
Сижу с правами администратора. На справку выставлены полные права.
4 ALFkz
 
11.07.13
08:45
посмотри в коде может проверка стоит при проведение документа на нахождение других доков после него. Кстати бухсправка делает движения по регистрам движения или по бухгалтерии. (просто хз че за конфа ПУБ).
5 Chum
 
11.07.13
08:45
(0) дата запрета редактирования? И вообще, вводить что-то задним числом, особенно в закрытом периоде  - моветон и вероятность получить люлей.
Кстати, почему прогер что-то вводит в учетной системе? Это задача бухов.
6 Chum
 
11.07.13
08:46
(4) производство, услуги, бухгалтерия. Бухсправка = ручная операция по смыслу
7 kobzon
 
11.07.13
08:47
(4) По бухгалтерии. Но с недавних пор я туда и движения по регистрам запихал. А она блин капризная оказалась..
8 kobzon
 
11.07.13
08:50
(5) Нет не дата запрета редактирования.
Если документ Бух справка набить но не провести, а потом кто-то создаст любой документ, то бухсправка уже не проведется. Не знаю зачем такая защита..
А вводит не прогер, а бухгалтер. Просто бухгалтер спрашивает у прогера почему не проводится.
9 ALFkz
 
11.07.13
08:52
(8) значь в коде проверка скорей всего или права так проставлены.
10 kobzon
 
11.07.13
09:00
//*******************************
//******************************************************************************
// глКонтрольДатыДокумента(ПереданКонтекст, НачальнаяДатаДокумента)
//
// Параметры:
//  ПереданКонтекст        - контекст документа,из которого вызвана процедура
//  НачальнаяДатаДокумента - дата документа до изменения.
//
// Возвращемое значение:
//  1 - если документу был присвоен новый номер;
//  0 - если документу не был присвоен новый номер.
//  
// Описание:
//  Функция определяет ситуацию, когда при изменении своей даты документ
// оказывается в другом периоде нумерации документов, проверяет уникальность
// номера документа, и, в противном случае, пытается присвоить документу
// новый уникальный номер.
//  Для работы функции должна быть объявлена глобальная переменная модуля
// формы документа НачальнаяДатаДокумента. В процедуре ПриОткрытии
// в эту переменную должна быть записана дата документа.
//  Функция глКонтрольДатыДокумента() вызывается из процедуры ПриЗаписи.
//  В процедуре ПриЗаписи проверяется возвращаемое значение, и, если
// оно равно 1 (то есть, документу присвоен новый номер), статус возврата
// устанавливается в 0, то есть документ не записывается, а происходит возрат
// к редактированию документа.
//
Функция глКонтрольДатыДокумента(ПереданКонтекст, НачальнаяДатаДокумента) Экспорт
   Перем ФлагПрисвоенияНомера; // для возвращаемого значения
   
   ФлагПрисвоенияНомера=0;
   
   // Назначенную для данного вида документов периодичность смены номера
   // определяем из метаданных.
   ПериодСменыНомера = Метаданные.Документ(ПереданКонтекст.Вид()).ПериодичностьНомера;
   
   // В зависимости от установленной периодичности смены номеров,
   // определяем разность старой и новой датами документа.
   // В данном случае конкретная величина разности не важна,
   // важен сам факт ее наличия.
   Если ПериодСменыНомера = "Год" Тогда
       РазностьДат = НачГода(НачальнаяДатаДокумента)-НачГода(ПереданКонтекст.ДатаДок);
   ИначеЕсли ПериодСменыНомера = "Квартал" Тогда
       РазностьДат = НачКвартала(НачальнаяДатаДокумента)-НачКвартала(ПереданКонтекст.ДатаДок);
   ИначеЕсли ПериодСменыНомера = "Месяц" Тогда
       РазностьДат = НачМесяца(НачальнаяДатаДокумента)-НачМесяца(ПереданКонтекст.ДатаДок);
   ИначеЕсли ПериодСменыНомера = "День" Тогда
       РазностьДат = НачальнаяДатаДокумента-ПереданКонтекст.ДатаДок;
   Иначе
       РазностьДат = 0;
   КонецЕсли;
   
   Если РазностьДат <> 0 Тогда
       // В результате изменения даты документ "ушел" в другой период
       // смены номера. Возможные ситуации:
       // 1) в этом периоде уже существуют документы, и номер документа
       //    стал неуникален;
       // 2) номер документа - большой, и за-за этого в последовательности
       //    номеров образовалась дыра.
       
       // Все операции проверки номера выполняем с "копией" документа.
       Дубликат = СоздатьОбъект("Документ."+ПереданКонтекст.Вид());
       Дубликат.Новый();
       Дубликат.НомерДок=ПереданКонтекст.НомерДок;
       Дубликат.ДатаДок=ПереданКонтекст.ДатаДок;
       
       // Попробуем присвоить новый номер.
       // Вызов метода должен учитывать особенности нумерации
       // конкретного вида
       Дубликат.УстановитьНовыйНомер();
       
       // Если новый номер не равен старому, значит,
       // назначение номера прошло успешно.
       Если ( Дубликат.НомерДок <> ПереданКонтекст.НомерДок ) Тогда
           
           // Запоминаем новый номер и проверяем его на уникальность
           НовыйНомерДок = Дубликат.НомерДок;
           Если Дубликат.НайтиПоНомеру(Дубликат.НомерДок,Дубликат.ДатаДок)=0 Тогда
               
               // Если номер уникальный, выдаем запрос о необходимости
               // назначить документу новый номер
               Если Вопрос( "Дата документа была "+?(РазностьДат>0, "уменьшена", "увеличена") + " более чем на " + Нрег(ПериодСменыНомера)+"."+РазделительСтрок+
                            "Для документов вида """+ПереданКонтекст.ПредставлениеВида()+""" каждый "+Нрег(ПериодСменыНомера)+" нумерация начинается заново."+РазделительСтрок+
                            "Присвоить новый номер?","Да+Нет") = "Да" Тогда
                   ПереданКонтекст.НомерДок = НовыйНомерДок;
                   
                   // Устанавливаем возвращаемое значение
                   ФлагПрисвоенияНомера=1;
               КонецЕсли;
           КонецЕсли;
       КонецЕсли;
       // Новую дату документа запоминаем в качестве начальной даты -
       // в случае возможных последующих проверок.
       НачальнаяДатаДокумента=ПереданКонтекст.ДатаДок;

       // Активизируем номер докутента: если до
       ПереданКонтекст.Активизировать("НомерДок");
   КонецЕсли;
   Возврат ФлагПрисвоенияНомера;
КонецФункции // глКонтрольДатыДокумента()
//*******************************
11 1Сергей
 
11.07.13
09:09
(10) это вообще не в тему
12 kobzon
 
11.07.13
09:11
(11) Я уже понял) А где в тему никак не найду..
13 ALFkz
 
11.07.13
09:12
(12) Обработку проведения
14 ALFkz
 
11.07.13
09:14
(12) и у пользователя посмотри в правах в конфе
AdBlock убивает бесплатный контент. 1Сергей