helpf.pro
Регистрация

v8: Необходимо выгрузить данные (год, месяц, фонд рабочего времени) в DBF

chainik
14.10.2013 12:52Прочитано: 2424
Необходимо выгрузить данные (год, месяц, фонд рабочего времени) в DBF из справочника "Графики работы", но ... только из формы элемента. Как получить реквизиты этой формы?

Зачем ходить кругами? Создан файл
ДБФ = Новый XBase;
....... // поля
РабочиеГрафики=Справочники.ГрафикиРаботы.Выбрать();

// Выбираем 1-й график
...
Далее надо присвоить полям ДБФ реквизиты элемента формы графика: месяц, год, фонд рабочего времени... Переходим к следующему графику. И т.д. Не знаю, как обратиться к элементам формы. Может, кто подскажет?
Изменено 15.10.13 09:23:17
Yandex
Возможно, вас также заинтересует
Реклама на портале
Jonsony
14.10.2013 17:02Ответ № 1
выводишь в список (по ПКМ)
сохраняешь в Эксель
а из Экселя в DBF
всё штатно.

PS
чего не хватает в заданном тобой вопросе
1) шапки (она просто блеск)
2) какой именно ЗУП
3) версия dbf
Изменено 14.10.13 17:03:51
chainik
15.10.2013 09:31Ответ № 2
Ответ не ясен.
Jonsony
15.10.2013 09:54Ответ № 3
(2) chainik,
в каком месте:
как вывести список?
как сохранить в Эксель?
как из Экселя сохранить в dbf?
chainik
15.10.2013 10:08Ответ № 4
Зачем сохранять в Эксель? Надо просто из 1 С 8.2 ЗУП 2.5 (2.5.69.3) Данные из справочника перебросить в ДБФ. На заводе еще имеется своя программа. Вот для нее и требуется ДБФ-файл. В 8-ке плохо ориентируюсь. В основном работала на 7-ке. Хотелось бы получить конкретный ответ на свой вопрос, минуя Эксель. Как вытащить данные (реквизиты) не из самого объекта, а из формы. В данном случае из ФормыЭлемента справочника. В

ыводить список справочника, сохранять в Эксель, а потом в ДБФ - этот номер не проходит.
Jonsony
15.10.2013 10:42Ответ № 5
(4) chainik, зато для этого ничего писать в коде не надо
а так надо писать обработку, в ней описывать поля DBF, при чём для этого надо узнать версию используемого DBF

на форме списка справочника нажмите "Все действия", там есть пункт "Вывести список", выберите галочками нужные поля и нажмите "Ок", в результате получите табличный документ, который по 7.7 вам хорошо знаком
chainik
15.10.2013 11:41Ответ № 6
Но мне не такой вид нужен. Из самого справочника реквизиты и из программы прекрасно вытягиваю. Надо следующее:
Ви графика год месяц фонд врем в днях ... в часах
Основной график 2013 январь 17 136
--//-- -/- февраль 20 159
........................................................
2-х сменнный январь 17 136
--// -/- февраль 20 160
......................................................
и т.д все графики
как я получу выводом списка? Все данные тянутся из формы, которая представлена в виде таблицы. В списке этих данных нет.
Jonsony
15.10.2013 12:24Ответ № 7
(6) chainik, зайди из списка в график, внизу есть кнопка "Печать", по нажатию получишь печатную форму (табличный документ)
chainik
15.10.2013 14:21Ответ № 8
????? Зачем мне печатная форма? Мне надо перечисленные вверху данные записать в ДБФ для переброски в другую программу. Что я буду делать с печатной формой? Да и количество графиков у меня -41.
Jonsony
15.10.2013 16:27Ответ № 9
тогда выясняй версию используемого DBF и пиши обработку с обходом полей и формирования DBF нужной версии
chainik
16.10.2013 11:11Ответ № 10
Наверное, неправильно поставила вопрос. Попробую уточнить.
Есть объект-Справочники.ГрафикиРабот. Выбираем реквизит ВидГрафика. Делаем обход по нему. У справочника есть формы. Мне надо открыть формуЭлемента справочника и вытащить данные (год, месяц, фонд рабочего времени) . Как это сделать программно? Где можно посмотреть, как получить данные из форм?
Jonsony
16.10.2013 12:29Ответ № 11
обход справочника

через запрос - https://help1c.com/faq/view/303.html
через выборку - https://help1c.com/faq/view/48.html
Jonsony
16.10.2013 12:29Ответ № 12
по сути от 7.7 не особо отлично в этом плане
chainik
16.10.2013 12:50Ответ № 13
Понятно, что ничего не понятно. Как выбрать данные справочника-я знаю. Но, например, по циклу выбран графие№1 Основной. Как мне получить количество рабочих дней, часов за январь, февраль, ....., декабрь этого графика?Далее, выбран график №2. Получить аналогичные данные. и т.д. А то, что вы мне показали, действительно, от 7.7 не отличается. Я это уже выбрала. Неужели я так непонятно объясняю?
chainik
16.10.2013 12:55Ответ № 14
Понятно, что ничего не понятно. Как выбрать данные справочника-я знаю. Но, например, по циклу выбран графие№1 Основной. Как мне получить количество рабочих дней, часов за январь, февраль, ....., декабрь этого графика?Далее, выбран график №2. Получить аналогичные данные. и т.д. А то, что вы мне показали, действительно, от 7.7 не отличается. Я это уже выбрала. Неужели я так непонятно объясняю?
Jonsony
16.10.2013 14:12Ответ № 15
(14) chainik, -"Неужели я так непонятно объясняю?" просто не внимательно относитесь, все данные у вас перед глазами, это реквизиты справочника, когда выбран элемент справочника (одним из способов что выше) вам доступны реквизиты этого элемента, разве в 7.7 было иначе?
chainik
16.10.2013 14:58Ответ № 16
Возможно, что мы друг друга не понимаем. Откройте, пожалуйста, в конфигураторе справочник "Графики работ" и укажите мне, где находятся реквизиты: Месяц, ДнейЗаМесяц. Как мне добраться до них для определенного вида графика? Без обхода по циклам, просто одной строкой.
manc
16.10.2013 15:03Ответ № 17
(16) chainik, Если я Вас правильно понял, то вам нужны данные заполненого графика, для этого смотрите в сторону функций формирования это самого графика, которые предположительно вызываются ПриОткрытии() Формы элемента справочника.
chainik
16.10.2013 15:16Ответ № 18
Вы меня абсолютно правильно поняли. Пока я пытаюсь объяснить, что мне нужно, потихоньку продвигаюсь по программе, но сейчас опять застряла намертво.
Вот что получилось:
РабочиеГрафики=Справочники.ГрафикиРаботы.Выбрать();
Пока РабочиеГрафики.Следующий() Цикл
ФормаГраф = РабочиеГрафики.ПолучитьОбъект();

Форма = ФормаГраф.ПолучитьФорму("ФормаЭлемента");

Далее нужно использовать ТЗ КалендарьНаборЗаписей и получить свои реквизиты. Я так поняла. Вот тут тупик.
manc
16.10.2013 15:29Ответ № 19
Ну тут у Вас 2 варианта:
1: Смотреть как формируется при открытии каждое значение Таблицы значений КалендарьНаборЗаписей и подставлять в свою обрботку эти алгоритмы. (самый правильный вариант)
2:
-Открывать эту форму Форма.Открыть()
-Обращаться к таблице ЭтаФорма.КалендарьНаборЗаписей и работать с ней

КалендарьНаборЗаписей.Получить(сч).ЧасовЗаМесяц

-Закрывать форму Форма.Закрыть()
(Это не лучший вариант но более простой)
Изменено 16.10.13 15:30:56
chainik
16.10.2013 15:54Ответ № 20
Форма.Открыть();
Форма.КалендарьНаборЗаписей();
Для Индекс = 0 По 11 Цикл

НомерМесяца = Индекс + 1;
НазваниеМесяца = Форма.КалендарьНаборЗаписей[Индекс].Месяц;
Дней = Форма.КалендарьНаборЗаписей[Индекс].ДнейЗаМесяц;
Часов = Форма.Форма.КалендарьНаборЗаписей[Индекс].ЧасовЗаМесяц;

ДанныеМесяца = Форма.КалендарьНаборЗаписей[Индекс];

КонецЦикла;

Пишет:"Метод объекта не обнаружен (КалендарьНаборЗаписей)
Форма.КалендарьНаборЗаписей(); " *11
manc
16.10.2013 16:00Ответ № 21
По идее строка Форма.КалендарьНаборЗаписей(); не нужна, таблица уже готова осталось только перебрать.
chainik
16.10.2013 16:46Ответ № 22
Спасибо большое-пребольшое. Все прошло отлично. ДБФ-файл сформирован.
chainik
16.10.2013 16:51Ответ № 23
Вопрос закрыт!
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.