Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 660
от 26.11.2007, 05:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 399, Экспертов: 44
В номере:Вопросов: 3, Ответов: 9


Вопрос № 110244: Уважаемые эксперты! Есть необходимость создать самодельный документ, имеющий две табличной части(справочники), причем каждая строка первой Табличной части которого имеет несколько строк во второй части (отношение один ко многим). Причем реализовать д...
Вопрос № 110286: Доброго времени суток уважаемые эксперты! Есть 1С предприятие v7.7. Вопрос по ЗиК 275 релиз, в конце декабря необходимо уволить всех сотрудников предприятия в связи с ликвидацией. Сотрудников около 300, как штатными средствами их уволить одним приказ...
Вопрос № 110290: Добрый день уважаеммые эксперты! В если можно поясните такой момент в вопросе № 108563 мне посоветовали создать отдельную форму списка справочника, создать я ее создал, а вот как сделать возможность выбора между этими двумя формами? В режиме пре...

Вопрос № 110.244
Уважаемые эксперты! Есть необходимость создать самодельный документ, имеющий две табличной части(справочники), причем каждая строка первой Табличной части которого имеет несколько строк во второй части (отношение один ко многим). Причем реализовать добавление записей во второй табличной части.
Помогите советом как и на основе чего лучше будет сделать. Если можно то и какой-нить пример-шаблон. Спасибо.
Отправлен: 20.11.2007, 10:00
Вопрос задал: VOFFka_ (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, VOFFka_!
Для 1С7.7 я сделал так: объединил все записи в одной табличной части. Скриншот в приложении.
Легко обрабатывается, и проводится.
Ограничение: должно быть не более 9999 строк.

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.

Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Практикант)
Ответ отправлен: 20.11.2007, 13:12
Оценка за ответ: 3
Комментарий оценки:
Просил именно две табличной части. За ответ спасибо

Отвечает: Яна
Здравствуйте, VOFFka_!
Для 1С 8.0 можно сделать любое количество табличных частей.
В Вашем случае возможно будет достаточно просто разместить на форме 2 табличных поля с типом СправочникСписок. Если второй справочник является подчиненным, то достаточно установить связь по владельцу. Табличные Части в документе в этом случае либо вообще не нужны, либо могут не отображаться на форме, а заполняться при записи документа и восстанавливаться при открытии.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 20.11.2007, 15:51
Оценка за ответ: 5
Комментарий оценки:
Спасибо Я не уточнил что речь идет про 7.7.

Отвечает: Сергей Максименко [Elric]
Здравствуйте, VOFFka_!

Для версии 8.0, как правильно заметила Яна, две табличные части не составляют проблемы. Поэтому пишу прореализацию в версии 7.7, где не все так тривиально.
На форме добавляете 2 реквизита диалога "Таблица значений", проставляете им идентификаторы ТЗ1 и ТЗ2 (к примеру). Далее в процедуре ПриОткрытии() заполняете ТЗ1 и указываете какие колонки будут у ТЗ2. На форме помещаете реквизит диалога "Текст", ставите ему признак невидимости, в свойствах в качестве формулы прописываете функцию СформироватьТЗ2() -- в результате она будет выполняться каждый раз когда на форме произойдут какие-то изменения, например курсор переместится с одной строки ТЗ1 на другую. В модуле прописываете эту функцию, возвращать она всегда будет пустую строку "", гораздо важнее то что она будет заполнять данными ТЗ2 в зависимости от того, на какой строке указатель в ТЗ1 (метод ТекущаяСтрока()). Предусмотрите, чтобы ТЗ2 перезаполнялась только если строка ТЗ1 действительно была изменена, для этого запоминайте на какой строке ТЗ1 курсор был в прошлый раз.
Для добавления строк в ТЗ2 добавьте на форме кнопку. Тогда и об удалении, кстати, стоило бы подумать, и об редактировании.
И ни в коем случае в модуле не должно быть строчек типа Перем ТЗ1, ТЗ2; или ТЗ1=СоздатьОбъект("ТаблицаЗначений"); ТЗ2=СоздатьОбъект("ТаблицаЗначений");, иначе потом будете голову ломать почему на экране ничего не меняется :)

Как видите, программный код будет не очень маленький, поэтому писать сам я его не стал (хотя года три назад реализовывал такую задачу, но исходники не сохранились). Однако задача вполне решаема, думаю Вам понравится результат :)
---------
В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал)
Украина, Киев
Тел.: +38(095)2873210
Организация: "МАКСЕР" - продажа и внедрение "1С:Предприятие"
Адрес: г. Киев
WWW: "1С:Предприятие" - продажа, внедрение, сопровождение
----
Ответ отправлен: 21.11.2007, 02:45
Оценка за ответ: 5
Комментарий оценки:
СУПЕРР!!! Спасибо.

Отвечает: Dmitry Stashenko
Здравствуйте, VOFFka_!

Немного дополню ответ, который дал Сергей Максименко [Elric]. Предложенный им метод очень хорош и наверное единственно правильный. Но не забудьте пожалуйста, что документ после закрытия все же должен хранить какую-то информацию, а ТаблицаЗначений на форме на это не способна. Как вариант, можно в реквизитах табличной части полностью дублировать содержимое ТЗ1 и ТЗ2. Тогда при сохранении все останется на своих местах, а при открытии, как и предполагалось, нужно заполнить ТЗ1 и ТЗ2 из табличной части.
Если все же у вас еще осталась необходимость в примере, то у меня есть конфигурация с таким документом, напишите, я выложу куда-нибудь.
Ответ отправил: Dmitry Stashenko (статус: Студент)
Ответ отправлен: 21.11.2007, 21:24
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Пример это всегда хорошо! не надо изобретать велосипед.


Вопрос № 110.286
Доброго времени суток уважаемые эксперты! Есть 1С предприятие v7.7. Вопрос по ЗиК 275 релиз, в конце декабря необходимо уволить всех сотрудников предприятия в связи с ликвидацией. Сотрудников около 300, как штатными средствами их уволить одним приказом, если штатными нельзя, то может есть какие то обработки?
Заранее благодарю.
Отправлен: 20.11.2007, 14:13
Вопрос задал: Karachi (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ромашов Евгений Николаевич
Здравствуйте, Karachi!

сделать новый документ с табличной частью и заполнить всеми работающими сотрудниками.
либо обработкой сформировать нужное количество документов
Ответ отправил: Ромашов Евгений Николаевич (статус: 5-ый класс)
Ответ отправлен: 21.11.2007, 04:58
Оценка за ответ: 4

Отвечает: Астафьев Александр Николаевич
Здравствуйте, Karachi! Создайте обработку с циклом который перебирает всех сотрудников (с проверко может он уже не раьотает). И создавайте на каждого документ на увольнение. Раз уволняете всех то заполнение документа будет однотипным т.е заполнение полей документа одинаковое, за исключением выходного пособия. Его расчет возмите из документа на уволнение и вставте в свою обработку. Все.
Ответ отправил: Астафьев Александр Николаевич (статус: 6-ой класс)
Ответ отправлен: 22.11.2007, 18:54
Оценка за ответ: 4
Комментарий оценки:
Спасибо за участие, хотелось бы пример посмотреть


Вопрос № 110.290
Добрый день уважаеммые эксперты!
В если можно поясните такой момент в вопросе № 108563 мне посоветовали создать отдельную форму списка справочника, создать я ее создал, а вот как сделать возможность выбора между этими двумя формами? В режиме предприятия справочник по умолчанию открывается с основной формой списка....... Будте добры подскажите как быть..... Зарание спасибо!

Приложение:

Отправлен: 20.11.2007, 14:52
Вопрос задал: Serega_artem (статус: 7-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сергей Максименко [Elric]
Здравствуйте, Serega_artem!

Я написал еще в прошлом ответе, Вы просто невнимательны.
В Конфигураторе правой кнопкой мыши на справочнике, в открывшемся меню выбираете "Формы списка", подпункт "Редактировать" (в самом низу) -- откроется форма управления формами списка. Далее ставите курсор на нужную форму и нажимаете кнопку "Для выбора".

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
В творчестве рождается истина

Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал)
Украина, Киев
Тел.: +38(095)2873210
Организация: "МАКСЕР" - продажа и внедрение "1С:Предприятие"
Адрес: г. Киев
WWW: "1С:Предприятие" - продажа, внедрение, сопровождение
----
Ответ отправлен: 20.11.2007, 18:14

Отвечает: Кривых Александр Анатольевич
!!!
Здравствуйте, Serega_artem!
В реквизите, где открывается этот справочник, необходимо указать эту форму в Свойствах поля ввода на вкладке дополнительно в реквизите форма.

Таким образом пришлось бы прописывать наименование формы во всех элементах данного типа...
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 21.11.2007, 21:45
Ответ отправил: Кривых Александр Анатольевич (статус: 3-ий класс)
Ответ отправлен: 21.11.2007, 06:14

Отвечает: Астафьев Александр Николаевич
Здравствуйте, Serega_artem! Когда вы вызываете команду на открытие справочника указываете какую форму списка открывать ОткрытьФорму(''Справочник.Базовый.ДляПодбора'',) Т.е в основную форму справочника которая открывается по умолчанию вы прописываете процедуру которая однозначно прячет элементы с Архив=1, а когда надо показать все элементы используйте кнопку с командой в процедуре ОткрытьФорму(). В режиме предприятия выбирать какую форму открывать не получится
Ответ отправил: Астафьев Александр Николаевич (статус: 6-ой класс)
Ответ отправлен: 22.11.2007, 19:12


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.64 от 24.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное