|
|
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Имеем 1С:Налогоплательщик 8.1. Необходимо программно заполнить отчет. Как обратиться к ячейке, у которой есть имя? Пробовал разные варианты - безуспешно. Код: plaintext 1. 2. 3. 4. 5. 6. На рисунке - структура отчета. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 17:24 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Область.Параметры.П000100010003 = 100; должно работать, если свойство ячейки Заполнение стоит Параметр или Шаблон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 17:44 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
В Конфигураторе встаю на ячейку, правая кнопка, Свойства: Макет Заполнение Текст В самом 1С:Налогоплательщик встаю на ячейку, правая кнопка, Свойства: Основные Имя П000100010003 Пункта Заполнение нет вообще. Так как же мне к ней обратиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 17:55 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Макет = Отчеты.РегламентированныйОтчетРСВ1.ПолучитьМакет("СоставПоказателей2010Кв1"); Макет.Области["П000100010003"].Текст = 100; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 18:04 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖМакет = Отчеты.РегламентированныйОтчетРСВ1.ПолучитьМакет("СоставПоказателей2010Кв1"); Макет.Области["П000100010003"].Текст = 100; Господин ПЖ, говорит, что нет такого объекта. А не может это быть связано с тем, что отчет внешний? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 09:44 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 10:03 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
SlavА не может это быть связано с тем, что отчет внешний? блин... если внешний конечно такого объекта нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 11:18 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ блин... если внешний конечно такого объекта нет. Господин ПЖ, все там есть - с этим разобрался. Если внимательно посмотреть на картинку из моего первого поста, то в ячейках не название параметров - тогда бы они были в угловых скобках. Там стоят текстовые значения, которые являются названиями элементов формы. С заполнением макета теперь все понятно. Не очень понятно - а нужно ли его вообще заполнять? Как из макета данные попадут в форму? Можно ли сразу заполнять форму (на первой картинке ФормаОтчета2010Кв1)? Форма многостраничная - как адресоваться к элементам формы в этом случае? Буду благодарен за ответы и советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 12:06 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Нужно заполнять не форму, а документ "РегламентированныйОтчет". При открытии этого документа форма сама заполнится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 15:02 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
RustamZzНужно заполнять не форму, а документ "РегламентированныйОтчет". При открытии этого документа форма сама заполнится. RustamZz, можно чуть подробнее? Да, в реквизитах "РегламентированныОтчет" есть ИсточникОтчета, НаименованиеОтчета, ДанныеОтчета. Но куда (и как) писать данные? И правильно я понял, что никакие макеты мне для этого не нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 17:11 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Очевидно, что данные писать в ДанныеОтчета. Макет нужен, но другой тот, где перечислены сохраняемые реквизиты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 18:17 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
RustamZzОчевидно, что данные писать в ДанныеОтчета. Макет нужен, но другой тот, где перечислены сохраняемые реквизиты. RustamZz, как писать данные в ДанныеОтчета - каким образом связываются сотни ячеек конкретной формы с теми значениями, которые я хочу в них увидеть? Какой "другой" макет нужен и где я его должен создать? Если Вас не затруднит - можно небольшой кусок кода, как программно заполнить отчет. Погуглив, я не нашел ни одного примера программого формирования отчета. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 09:05 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 10:25 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
RustamZz, спасибо. Пошел разбираться. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 11:58 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Заткнулся на первом шаге - как в РегламентированныйОтчет подставить свой? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Во всех случаях говорит: Объект не поддерживает этот метод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 15:44 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, на самом деле ошибка еще на самой первой строчке - где ИсточникОтчета . И наверно это правильно - документ еще не создан. Но если я поставлю первые две строки после СоздатьДокумент - то какой же в этом смысл? Как все-таки перед СоздатьДокумент указать из какого именно отчета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 16:21 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
А в чем смысл сего шаманства? Заполнить реквизиты еще не созданного документа - это последствия превышения нормы угарного газа в Нерезиновой... Чем не устраивает вариант создать документ и в нем заполнять регистры? МойДок = Документы.РегламентированныйОтчет.СоздатьДокумент(); МойДок.ИсточникОтчета = "Отчеты.<<ИмяВашегоОтчетаВКонфигурации>>"; МойДок.НаименованиеОтчета = "Отчеты.<<ИмяВашегоОтчетаВКонфигурации>>"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 16:55 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
сам перегрелся, реквизиты регистрами обозвал.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 16:55 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
1C никА в чем смысл сего шаманства? Заполнить реквизиты еще не созданного документа - это последствия превышения нормы угарного газа в Нерезиновой... Чем не устраивает вариант создать документ и в нем заполнять регистры? МойДок = Документы.РегламентированныйОтчет.СоздатьДокумент(); МойДок.ИсточникОтчета = "Отчеты.<<ИмяВашегоОтчетаВКонфигурации>>"; МойДок.НаименованиеОтчета = "Отчеты.<<ИмяВашегоОтчетаВКонфигурации>>"; 1C ник, видимо настало время еще раз, более четко сформулировать мою цель. Я хочу программно заполнить конкретный регламентированный отчет и записать полученный документ. При этом необходимо учесть: 1. Заполнение хотелось бы производить не вслепую, а визуализировав программно форму моего отчета и делая видимым пользователю процесс. 2. Форма моего отчета - многостраничная, страницы формируются динамически. Поэтому обращение к любому элементу формы требует её (формы) обязательный нормальный старт. На данный момент мне понятно, что все манипуляции надо делать через через Документ.РегламентированныйОтчет . Даже для того, чтобы убедиться, что мой отчет проинициирован правильно я - на первом шаге - хочу его просто увидеть. Поэтому и выполняю очевидные, казалось бы действия: 1. Создаю документ РегламентированныйОтчет. 2. Указываю в качестве иточника мой конкретный отчет. 3. Получаю форму. 4. Открываю её визуально. 1-ый вариант : предполагаю, что после указания источника все значения шаблона РегламентированныйОтчет проинициированы значениями из моего отчета, поэтому пытаюсь взять форму по названию из моего отчета - ФормаОтчета2010Кв1 : Код: plaintext 1. 2. 3. 4. 5. На ПолучитьФорму получаю ошибку - Недопустимое значение параметра . Ладно, не беда - значит надо обращаться по имени, которое указано в стандартном РегламентированномОтчете - ФормаДокумента . 2-ой вариант : Код: plaintext 1. 2. 3. 4. 5. Оно и понятно - в ней так и написано: "Эта форма вспомогательная, визуально не отображается". И теперь меня терзают смутные сомнения - как программно получить такое элементарное действие, как двойной щелчок мышью по регламентированному отчету, когда он появляется на экране? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2010, 10:05 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Все оказалось значительно проще. Так отчет создается и сохраняется: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Теперь другая проблема - не сохраняется значение, которое я пишу в ячейку. Имя П000100010003 - имя ячейки, которое я вижу в Свойствах, когда открываю отчет руками. В чем моя ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 12:39 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
мухи отдельно, котлеты отдельно... не все что отображается в документе в нем же хранится. Тем более когда это в табличном поле болтается. Сидеть смотреть что делает функция .Сохранить() от формы... чего и куда она пишет (если вообще пишет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 13:10 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Документ регламентированного отчета создается - с этим разобрался. Теперь не могу решить обратную задачу - имея документ регламентированного отчета программно его открыть. Делаю так - выбираю в диалоге нужный документ: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. На ПолучитьФорму ругается - Недопустимое значение параметра 1 . Хотя в реквизите ВыбраннаяФорма документа именно это название и стоит. Как программно открыть документ регламентированного отчета? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 14:41 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Примерно так ... Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 07:09 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
valex13 ... Иными словами, тебе нужно в начале определить ссылку на объект - документ, а потом вызывай его методы. valex13, тут прикол в другом. То, что я правильно беру документ я уверен. После диалогового выбора документа Код: plaintext я даже реквизиты проверяю - все ОК. С формой же засада в следующем. Все регламентированные отчеты создаются на базе Документ.РегламентированныйОтчет. Если не полениться и посмотреть в Конфигураторе на его формы, то можно увидеть ФормаДокумента. Посмотрите на неё - не пожалеете. :) В реквизитах же этого Документа есть ВыбраннаяФорма, в котором - я проверял - хранится название формы из того конкретного регламентируемого отчета, на основании которого создан конкретный документ. Я смотрел в отладчике - при старте это название хитро подсовывается вместо родного. Но внешние программные возможности 1С этого сделать не позволяют. Короче, любого желающего прошу проверить маленькую прогу: Код: plaintext 1. 2. 3. 4. В диалоге выберите любой регламентированный отчет и... теперь попробуйте его просто увидеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 10:10 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
возьмите в конце концов Радченко "Простые примеры". Вы себе мозг выносите и нам заодно... Закладываете себе неверный базис работы с объектами конфигурации, потом будете ломать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:07 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ, Вы проверили предложенный мной код? Вы регламентированный отчет на экран программно можете вызвать? ДА или НЕТ ? Если ДА - скажите на какой странице у Радченко этот "простой пример". Если НЕТ - прошу "не выносить мозг". Удачи! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:35 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
мне даже пробовать не надо, чтобы знать что сломается на ФормаДок = ВыбДок.ПолучитьФорму(); ибо полная х.ня написана... Вы меня работой с формами в 1С-е будете учить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:46 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
если открыли форму списка и выбирать из нее - нахера программно? Тыкните мышью в документ из списка - сам откроется... если есть ссылка - открывайте форму непосредственно документа - нахрен список... чо вы в кучу все валите? Винигрет пока в голове... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:52 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖмне даже пробовать не надо, чтобы знать что сломается на ФормаДок = ВыбДок.ПолучитьФорму(); ибо полная х.ня написана... Вы меня работой с формами в 1С-е будете учить? Господин ПЖ, вчера корпоратив поздно закончился? :) 1. Я не только на этом форуме учусь. На другом - не менее солидном - мой скрипт запустили и утверждают что все отлично работает. Работает. Так что попробуйте все же - может откроете для себя самого много нового в 1С. 2. Вообще-то это я прошу научить меня работе с формами в 1С. Не хотите - не надо. Я же лично Вас ни о чем не прошу. Водички попейте... Удачи! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:53 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖесли открыли форму списка и выбирать из нее - нахера программно? Тыкните мышью в документ из списка - сам откроется... если есть ссылка - открывайте форму непосредственно документа - нахрен список... чо вы в кучу все валите? Винигрет пока в голове... Господин ПЖ, с последней фразой в отношении себя полностью согласен. Приведенный мною "простой пример" предназначен для того, чтобы те, кто захочет мне помочь просто сделали копипаст и подтвердили - документ регламентированного отчета открывается. У меня - не открывается. А у Вас? Прошу ответить ДА - НЕТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:57 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
>На другом - не менее солидном - мой скрипт запустили и утверждают что все отлично работает. это радует - значит толк будет. Через полгода будет стыдно за то что сейчас пишете - но это нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:57 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
SlavГосподин ПЖесли открыли форму списка и выбирать из нее - нахера программно? Тыкните мышью в документ из списка - сам откроется... если есть ссылка - открывайте форму непосредственно документа - нахрен список... чо вы в кучу все валите? Винигрет пока в голове... Господин ПЖ, с последней фразой в отношении себя полностью согласен. Приведенный мною "простой пример" предназначен для того, чтобы те, кто захочет мне помочь просто сделали копипаст и подтвердили - документ регламентированного отчета открывается. У меня - не открывается. А у Вас? Прошу ответить ДА - НЕТ. ежу понятно что не открывается... ибо повторюсь опять - написана полная х.ня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 11:59 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
если хотите открыть документ программно - нужна ссылка или сам объект от него... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:01 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
надо думать что пишите-то... сначала получаете форму списка, потом открываете ее. Получаете открытый грид для интерактивного выбора. Если хотите поймать событие выбора некого конкретного документа из него - так и ловите его, но не у соседки на кровати, а в соответствующем событии Процедура КнопкаВыполнитьНажатие(Кнопка) ФормаВыбора = Документы.РегламентированныйОтчет.ПолучитьФормуВыбора(, ЭтаФорма); ФормаВыбора.ОткрытьМодально(); КонецПроцедуры Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) Сообщить("" + ЗначениеВыбора); КонецПроцедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:15 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖесли хотите открыть документ программно - нужна ссылка или сам объект от него... Господин ПЖ, ФормаВыбора возвращает мне документ. Возвращает правильно - я проверяю по реквизитам. Со всеми документами, в которых в самих есть форма - все работает нормально. Но в документах регламентированной отчетности хранится не форма, а ссылка на другую форму, в реквизите ВыбраннаяФорма. Проблема не в том, как получить документ - выбором, поиском по ссылке или другим способом. Проблема в том, что для документов регламентированной отчетности ПолучитьФорму() возвращает свою собственную ФормуДокумента. Свою - а не ту, которая у него же в реквизите ВыбраннаяФорма. Сделайте мне одолжение. Любым удобным Вам способом получите документ регламентированной отчетности и воспроизведите её на экране. А потом покажите мне код. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:19 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Область Определена в Макете? К яечейке лчше обращться указывая колонку и строка (К,С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:19 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги, я сразу предлагаю ограничить обсуждение одним конкретным видом документа - Документ.РегламентированнаяОтчетность. Кому интересно - откройте его в Конфигураторе и посмотрите. В частности, ФормаДокумента. Хоть кто-нибудь программно может этот документ воспроизвести на экране? Если ДА - покажите 5-6 строк кода и закроем тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:32 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
запарил... Процедура КнопкаВыполнитьНажатие(Кнопка) ФормаВыбора = Документы.РегламентированныйОтчет.ПолучитьФормуВыбора(, ЭтаФорма); ФормаВыбора.ОткрытьМодально(); КонецПроцедуры Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) ф = ЗначениеВыбора.ПолучитьФорму(); ф.открыть(); КонецПроцедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:33 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖзапарил... Процедура КнопкаВыполнитьНажатие(Кнопка) ФормаВыбора = Документы.РегламентированныйОтчет.ПолучитьФормуВыбора(, ЭтаФорма); ФормаВыбора.ОткрытьМодально(); КонецПроцедуры Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) ф = ЗначениеВыбора.ПолучитьФорму(); ф.открыть(); КонецПроцедуры Господин ПЖ, документ открылся? Реально открылся - или это "теоретический код"? ф.ОткрытьМодально() работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:41 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
да открылся, че ему не открываться... можно и не модально... в данном случае это не важно. Чтобы головой не биться - "у меня в ОбработкаВыбора" на заходит - смею напомнить что тут тупое копи/пасте не сработает, такие процедуры надо "привязывать" к форме, чтобы события формы были связаны именно с ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:46 |
|
||
|
Как программно записать ячейку с именем?
|
|||
|---|---|---|---|
|
#18+
Господин ПЖда открылся, че ему не открываться... можно и не модально... в данном случае это не важно. Чтобы головой не биться - "у меня в ОбработкаВыбора" на заходит - смею напомнить что тут тупое копи/пасте не сработает, такие процедуры надо "привязывать" к форме, чтобы события формы были связаны именно с ними. Господин ПЖ, Вы мне очень помогли. Спасибо. Значит, дело все-таки в этом... Я пишу не в среде 1С - работаю через V81.Application из внешнего скрипта. До сих пор проблем не было - но вот с этим самым Документ.РегламентированнаяОтчетность засада. Даже воспроизвести на экран уже готовый документ не получается, не то что с ним работать программно. ПолучитьФорму() упорно возвращает пустышку, а не ту форму которая в реквизите ВыбраннаяФорма. Буду искать другой выход. С Вашей помощью, Господин ПЖ . Удачи! :) Если, конечно, не возражаете. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2010, 12:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=28&tid=1522091]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 530ms |

| 0 / 0 |
