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

Хранилище

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

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



> Выбрать документ из списка документов          
kosalex Подменю пользователя
сообщение 17.07.13, 13:41
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Добрый день. Помогите!

Есть две таблицы значений "Опоздавшие", "Неявки":

ТаблицаОпоздавшие.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка"));
    ТаблицаОпоздавшие.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка",,КСтроки));
    ТаблицаОпоздавшие.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата",,КДатаПрихода));
    ТаблицаОпоздавшие.Колонки.Добавить("ОтработанноеВремя", Новый ОписаниеТипов("Число"));
    ТаблицаОпоздавшие.Колонки.Добавить("ЧасовНевыхода");
    
    
    ТаблицаНеявки.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка"));
    ТаблицаНеявки.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка",,КСтроки));
    ТаблицаНеявки.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
    ТаблицаНеявки.Колонки.Добавить("ОтработанноеВремя", Новый ОписаниеТипов("Число"));
    ТаблицаНеявки.Колонки.Добавить("ЧасовНевыхода");



Нужно создавать документ "НевыходыВОрганизации" и заполнять его из этих таблиц. Если за один отчетный месяц обработка была запущена несколько раз, то НОВЫЙ документ создавать не нужно. Нужно открывать созданый документ и дописывать туда данные.

Как открыть документ за определённый период?
Как дописать туда данные?


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


pablo Подменю пользователя
сообщение 17.07.13, 14:06
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 193 раз
Рейтинг: 0

Выборка.Ссылка.ПолучитьОбъект().ПолучитьФорму("ФормаДокумента").Открыть();


Signature
Правильно поставленный вопрос содержит до 90% ответа.

kosalex Подменю пользователя
сообщение 17.07.13, 15:22
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

в смысле у меня период месяц?От даты прихода и получаем период текущий месяц.






вопрос в следующем, при добавлении сотрудника он вставляется как то не так, без ссылки или ещё как то.. в общем не подхватываются данные в колонки "Таб.№" "Назначение" и т.д.



не понемаю...тип ссылка


Pervuy Подменю пользователя
сообщение 17.07.13, 15:40
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 1 раз
Рейтинг: 0

Может быть причина в том что у Вас в таблице не ссылка на элемент справочника, а ТаблицаОпоздавшие.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка")); Строка
соответственно я предлагаю сначала искать элемент справочника по наименованию, а потом уже записывать его в документ.

kosalex Подменю пользователя
сообщение 17.07.13, 15:49
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Описание колонки таблицы:
ТаблицаОпоздавшие.Колонки.Добавить("ФИО");





Записываем в колонку:
СтрокаТаблицыОпоздавшие.ФИО = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(СокрЛП(СтрокаТаблицыИзФайла.ФИО));


Я так понимаю,что при такой записи, в таблице храниться ссылка на сотрудника из справочника СотрудникиОрганизации.

logist Подменю пользователя
сообщение 17.07.13, 16:09
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(kosalex @ 17.07.13, 16:49) *
Записываем в колонку:

А если в организации будут работать два Иванова Ивана Ивановича?

А вообще, ТабНомер в форме вероятно заполняется по событию изменение поля сотрудника, поэтому вам при программном создании нужно и заполнять его программно.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 17.07.13, 21:27
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Перед формированием таблицы значений стоит условие ещё и на ИНН, актуальность сотрудников

logist Подменю пользователя
сообщение 17.07.13, 21:45
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(kosalex @ 17.07.13, 22:27) *
Перед формированием таблицы значений стоит условие ещё и на ИНН, актуальность сотрудников

Тогда логичней искать по ИНН, вы же найдете так уникального сотрудника и из найденной ссылки можно взять ФИО (только вероятно оно тогда не нужно), нет необходимости искать еще и по наименованию. К тому же, если идентифицировать по ИНН, то с таблицей можно работать в запросе, т.е. засунуть ее туда, найти все необходимые данные, скомпоновать их и загрузить в таблицу документа.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 18.07.13, 7:43
Сообщение #9

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

у некоторых сотрудников нет ИНН, им не позволяет вера....))



Я так понимаю,мне нужно взывать именно эту процедуру?
В неё передаем ВыбранноеЗначение - это структура. Не совсем понятно из чего должна состоять структура, и что такое Элемент?

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


pablo Подменю пользователя
сообщение 18.07.13, 8:16
Сообщение #10

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 193 раз
Рейтинг: 0

А в таблице опоздавшие у Вас 3 строки или 5? Еще, как вариант, посмотрите количество строк в ТЧ начисление до начала работы цикла


Signature
Правильно поставленный вопрос содержит до 90% ответа.

kosalex Подменю пользователя
сообщение 18.07.13, 8:24
Сообщение #11

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

В таблице Опоздавшие может быть хоть 100 строк. Строка это же 1 опоздавший сотрудник

pablo Подменю пользователя
сообщение 18.07.13, 8:50
Сообщение #12

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 193 раз
Рейтинг: 0

Я не спрашиваю про теоретические ограничения, я спрашиваю про Ваш конкретный пример, приведенный на скриншоте


Signature
Правильно поставленный вопрос содержит до 90% ответа.

kosalex Подменю пользователя
сообщение 18.07.13, 9:01
Сообщение #13

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

две первые строки добавил сам,руцями,не программно. В таблице "опоздавшие" 3 строки

logist Подменю пользователя
сообщение 18.07.13, 9:28
Сообщение #14

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(logist @ 17.07.13, 22:45) *
у некоторых сотрудников нет ИНН, им не позволяет вера....))

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

pablo Подменю пользователя
сообщение 18.07.13, 9:30
Сообщение #15

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 193 раз
Рейтинг: 0

При ручном добавлении строки у Вас срабатывает некое событие обработчик которого(например, ПриИзменении) и устанавливает значения этих свойств. Если же заполняете ТЧ программно, то никто этот обработчик не вызывает (по причине отсутствия события). Соответственно, Вам нужно либо самому устанавливать значения этих свойств в своем коде, либо вызывать этот обработчик события (напрямую либо через генерацию события).


Signature
Правильно поставленный вопрос содержит до 90% ответа.

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


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

 

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