Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Ошибки в конфигурации ЗиК 7.7 , Встречающиеся ошибки в конфигурации и возможные решения          
tgpov Подменю пользователя
сообщение 11.02.09, 1:27
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 4 раз
Рейтинг: 0

Регламентированные отчеты персонификация в ПФ personpf.ert. Не правильно ведется подсчет количества дней


Процедура ИндДанныеСотр(Знач Сотр)
...
Пока ТабДвиженияСотр.ПолучитьСтроку() = 1 Цикл
Если (ДатаПериода >= ТабДвиженияСотр.ДатаПриема) И (ДатаПериода <= ТабДвиженияСотр.ДатаУвольнения)
ИЛИ (ДатаПериода >= ТабДвиженияСотр.ДатаПриема) И (Число(ТабДвиженияСотр.ДатаУвольнения)=0)
Тогда
ДатаС = ДатаПериода;
Если ТабДвиженияСотр.ДатаПриема > ДатаПериода Тогда
ДатаС = ТабДвиженияСотр.ДатаПриема;
КонецЕсли;
ДатаПо = КонПериода;
Если (ДатаЧисло(ТабДвиженияСотр.ДатаУвольнения) <> 0) И (ТабДвиженияСотр.ДатаУвольнения < КонПериода) Тогда
ДатаПо = ТабДвиженияСотр.ДатаУвольнения;
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;



РЕшение


Процедура ИндДанныеСотр(Знач Сотр)
.....
ТабДвиженияСотр. ВыбратьСтроки();
Пока ТабДвиженияСотр.ПолучитьСтроку() = 1 Цикл
Если (КонПериода >= ТабДвиженияСотр.ДатаПриема) И (ДатаПериода <= ТабДвиженияСотр.ДатаУвольнения)
ИЛИ (КонПериода >= ТабДвиженияСотр.ДатаПриема) И (Число(ТабДвиженияСотр.ДатаУвольнения)=0)
Тогда
ДатаС = ДатаПериода;
Если ТабДвиженияСотр.ДатаПриема > ДатаПериода Тогда
ДатаС = ТабДвиженияСотр.ДатаПриема;
КонецЕсли;
ДатаПо = КонПериода;
Если (ДатаЧисло(ТабДвиженияСотр.ДатаУвольнения) <> 0) И (ТабДвиженияСотр.ДатаУвольнения < КонПериода) Тогда
ДатаПо = ТабДвиженияСотр.ДатаУвольнения;
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;

Спасибо сказали: gryphus, navys,

tgpov Подменю пользователя
сообщение 11.02.09, 2:59
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 4 раз
Рейтинг: 0

Еще
Регламентированные отчеты персонификация в ПФ personpf.ert



// ===============================
Функция ПолучитьДвиженияСотр(Знач Сотр)

тбДвижений = СоздатьОбъект("ТаблицаЗначений");
тбДвижений.НоваяКолонка("ДатаПриема","Дата");
тбДвижений.НоваяКолонка("ДатаУвольнения","Дата");

Док = СоздатьОбъект("Документ");
//Док.ВыбратьПоЗначению(Дата1,Дата2,"ПриказыПоСотруднику",Сотр);
Док.ВыбратьПоЗначению(,,"ПриказыПоСотруднику",Сотр);
Пока Док.ПолучитьДокумент() = 1 Цикл

Если Док.Вид() = "ПриказОПриеме" Тогда
тбДвижений.НоваяСтрока();
тбДвижений.ДатаПриема = Док.ДатаНачала;

ИначеЕсли Док.Вид() = "ПриказОбУвольнении" Тогда
тбДвижений.Сортировать("ДатаПриема");
Кво = тбДвижений.КоличествоСтрок();
Для Инд = 0 По Кво-1 Цикл
тбДвижений.ПолучитьСтрокуПоНомеру(Кво-Инд);
Если тбДвижений.ДатаПриема < Док.ДатаУвольнения Тогда
тбДвижений.ДатаУвольнения = Док.ДатаУвольнения;
КонецЕсли;
КонецЦикла;

КонецЕсли;

КонецЦикла;

Если тбДвижений.КоличествоСтрок() = 0 Тогда
тбДвижений.НоваяСтрока();
тбДвижений.ДатаПриема = Сотр.ДатаНачалаДействия;
тбДвижений.ДатаПриема = Сотр.ДатаОкончанияДействия;
КонецЕсли;

Возврат тбДвижений;

КонецФункции



Решение


// ===============================
Функция ПолучитьДвиженияСотр(Знач Сотр)

тбДвижений = СоздатьОбъект("ТаблицаЗначений");
тбДвижений.НоваяКолонка("ДатаПриема","Дата");
тбДвижений.НоваяКолонка("ДатаУвольнения","Дата");

Док = СоздатьОбъект("Документ");
//Док.ВыбратьПоЗначению(Дата1,Дата2,"ПриказыПоСотруднику",Сотр);
Док.ВыбратьПоЗначению(,,"ПриказыПоСотруднику",Сотр);
Пока Док.ПолучитьДокумент() = 1 Цикл

Если Док.Вид() = "ПриказОПриеме" Тогда
тбДвижений.НоваяСтрока();
тбДвижений.ДатаПриема = Док.ДатаНачала;
тбДвижений.ДатаУвольнения = Сотр.ДатаОкончанияДействия;
ИначеЕсли Док.Вид() = "ПриказОбУвольнении" Тогда
Кво = тбДвижений.КоличествоСтрок();
Если Кво = 0 Тогда
тбДвижений.НоваяСтрока();
тбДвижений.ДатаПриема = Сотр.ДатаНачалаДействия;
тбДвижений.ДатаУвольнения = Сотр.ДатаОкончанияДействия;
КонецЕсли;
тбДвижений.Сортировать("ДатаПриема");
Кво = тбДвижений.КоличествоСтрок();
Для Инд = 0 По Кво-1 Цикл
тбДвижений.ПолучитьСтрокуПоНомеру(Кво-Инд);
Если тбДвижений.ДатаПриема < Док.ДатаУвольнения Тогда
тбДвижений.ДатаУвольнения = Док.ДатаУвольнения;
тбДвижений.ДатаПриема = Сотр.ДатаНачалаДействия;
КонецЕсли;
КонецЦикла;

КонецЕсли;

КонецЦикла;

Если тбДвижений.КоличествоСтрок() = 0 Тогда

тбДвижений.НоваяСтрока();
тбДвижений.ДатаПриема = Сотр.ДатаНачалаДействия;
тбДвижений.ДатаУвольнения = Сотр.ДатаОкончанияДействия;
КонецЕсли;

Возврат тбДвижений;

КонецФункции



tgpov Подменю пользователя
сообщение 11.02.09, 12:33
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 4 раз
Рейтинг: 0

Ошибка 7.7 ЗиК регламентные отчеты форма 1дф


Процедура РассчитатьПоФактуВыплаты()
...
тбНачисленоДляЛьгот.ВыбратьСтроки();
тбНачисленоДляЛьгот.ПолучитьСтроку();

тбНачислено.Сортировать("ИНН+, Сотр*, ПериодДействия+");
тбНачислено.ВыбратьСтроки();
Пока тбНачислено.ПолучитьСтроку() = 1 Цикл
Если (тбНачисленоДляЛьгот.Сотр <> тбНачислено.Сотр)
ИЛИ (тбНачисленоДляЛьгот.ПериодДействия <> тбНачислено.ПериодДействия)
Тогда
тбНачисленоДляЛьгот.ПолучитьСтроку();
КонецЕсли;
тбНачислено.НачисленоДляЛьгот = тбНачисленоДляЛьгот.Начислено;
КонецЦикла;


Возможно такое решение (синхронизируем две таблицы по сотруднику)



тбНачислено.ВыбратьСтроки();
Пока тбНачислено.ПолучитьСтроку() = 1 Цикл
Если (тбНачисленоДляЛьгот.Сотр <> тбНачислено.Сотр)
ИЛИ (тбНачисленоДляЛьгот.ПериодДействия <> тбНачислено.ПериодДействия)
Тогда
Если тбНачисленоДляЛьгот.ИНН > тбНачислено.ИНН Тогда
Пока тбНачислено.Сотр <> тбНачисленоДляЛьгот.Сотр Цикл
тбНачисленоДляЛьгот.ПолучитьСтроку();
КонецЦикла;
Если тбНачисленоДляЛьгот.ПериодДействия = тбНачислено.ПериодДействия Тогда
тбНачислено.НачисленоДляЛьгот = тбНачисленоДляЛьгот.Начислено;
КонецЕсли;
КонецЕсли;
Иначе
тбНачислено.НачисленоДляЛьгот = тбНачисленоДляЛьгот.Начислено;
КонецЕсли;
КонецЦикла;

Спасибо сказали: MATEVI,

tgpov Подменю пользователя
сообщение 11.02.09, 13:44
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 4 раз
Рейтинг: 0

Отчет.Расчетные ведомости


// ===============================
Процедура ВыполнитьЗапрос(ПечФорма)
...
ИначеЕсли (ПечФорма = "ВедомостьП6") ИЛИ (ПечФорма = "ВедомостьП7") Тогда

добавить


|Функция СуммаМежрасчетных = Сумма(Сумма) когда((ВидРасч = ВидРасчета.ВыплатаЧерезБанк) ИЛИ (ВидРасч = ВидРасчета.ВыплатаЧерезКассу) ИЛИ (ВидРасч = ВидРасчета.ВыплатаНатурой));

Спасибо сказали: MATEVI,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 0:50
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!