Выгрузка в Excel Плохой тип переменной
06.03.2009
12:03
#11
"Сообщить(ТипЗначенияСтр(МФКатЦены.ПолучитьЗначение(Ном)));<br>-Справочник-<br>"
10.03.2009
06:42
#12
"> Сообщить(ТипЗначенияСтр(МФКатЦены.ПолучитьЗначение(Ном)));<br>> -Справочник-<br>> <br><br>Вот и ответ<br><br>То есть нужно не справочник выводить в Excel, а какой-то конуретный реквизит<br>Например <br>Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном).Наименование;<br>или если вы будете загружать в копию базы, то можно <br>Exc.Cells(1, Ном).Value=ЗначениеВСтроку(МФКатЦены.ПолучитьЗначение(Ном));<br><br> <br><br>"
10.03.2009
09:13
#13
"УРААААААА ЗАРАБОТАЛА!!!!!<br>Разрешите Вас расцеловать ;)<br>Спасибо огромное."
12.03.2009
09:55
#14
"Теперь еще одна поблемка<br>Есть переменная "ЧЦена" в которой определяется цена товара<br>если я делаю так:<br><br>Для Инд = 1 По КолРек Цикл <br> Exc.Cells(ТекСтрока-1, Инд+4).Value =ЧЦена;<br>КонецЦикла; <br><br>то во все колонки (закупочная, мелкооптовая, оптовая, розничная) пишется значение первой строки<br>списка МФКатЦены, если первая в списке была закупочная цена то во все четыре колонки пишется закупочная цена.<br>А хотелось бы чтобы цена соответствовала колонке.<br>Помогите подалуйста."
12.03.2009
10:10
#15
Из данного куска кода абсолютно не понятно, как Вы определяете значение переменной ЧЦена<br>По хорошему надо воспользоваться отладчиком, посмотреть значения <br><br><br>Я бы для формирования данных для выгрузки воспользовалась бы не списоком значений МФКатЦены, а таблицей значений<br>С колонками соответствующими Exceleвской таблице<br>Заполнила бы ее<br>Посмотрела в отладчике или через ТЗ.ВыбратьСтроку(), что у меня получилось, а потом бы уже все это засунула в Excel<br>
12.03.2009
10:16
#16
"Очень странный код. А вы что ожидали увидеть?<br>Грубо говоря вы всем 4-м колонкам присвоили одно значение ЧЦена.<br>Другое дело если ЧЦена массив или что-то типа того, тогда должно было быть так:<br>Для Инд = 1 По КолРек Цикл <br>Exc.Cells(ТекСтрока-1, Инд+4).Value =ЧЦена[Инд-1];<br>КонецЦикла;<br><br>А иначе, извините, ничего у вас не выйдет."
12.03.2009
12:30
#17
"Из своего кода я получить ничего другого и не ожидал<br>Поэтому и прошу совета<br>Для Инд = 1 По КолРек Цикл <br>Exc.Cells(ТекСтрока-1, Инд+4).Value = ЗДЕСЬ НУЖНО ПРАВИЛЬНО СФОРМИРОВАТЬ ЗАПРОС ЧТОБЫ ЗНАЧЕНИЕ ПЕРЕМ. "ЧЦена" ФОРМИРОВАЛАСЬ ПО ЗНАЧЕНИЮ НОМЕРА СТРОКИ ИЗ СПИСКА МФКатЦены;<br>КонецЦикла;<br><br>Например как это было в случае заполнения шапки<br><br>Exc.Cells(1, Ном+4).Value=МФКатЦены.ПолучитьЗначение(Ном).Наименование;<br>Только теперь нужно получить не название цены по номеру в списке МФКатЦены, а цену по номеру в списке<br><br>забыл добавить КолРек=МФКатЦены.РазмерСписка()"
12.03.2009
14:32
#18
"> Exc.Cells(1, Ном+4).Value=МФКатЦены.ПолучитьЗначение(Ном).Наименование;<br>Нет у вас в списке цены. У вас в списке элементы справочника. Возможно номенклатура или материалы (это Вам лучше знать)<br>А вот как получить цену зная чего-то - это другой вопрос<br>А ответ зависит от структуры вашей конфигурации<br>Если у Вас цены хранятся в справочнике "ЦеныНоменклатуры" и Цена - это периодический реквизит, то можно получить цену<br>По всей видимости у вас еще должен быть в этом справочнике реквизит "ТипЦен"<br>СпрЦены = СоздатьОбъект("Справочник.ЦеныНоменклатуры");<br>СпрЦены.ИспользоватьВладельца(МФКатЦены.ПолучитьЗначение(Ном).ТекущийЭлемент());<br>СпрЦены.ИспользоватьДату(КакаятоДата);<br>СпрЦены.ВыбратьЭлементы();<br>Пока СпрЦены.ПолучитьЭлемент()=1 Цикл<br>Если СпрЦены.ТипЦен.Наименование = "Закупочные" Тогда<br>Exc.Cells(ТекСтрока-1, Инд+1).Value = СпрЦены.Цена;<br>ИначеЕсли ... Тогда<br>Exc.Cells(ТекСтрока-1, Инд+2).Value = СпрЦены.Цена;<br>и т.д.<br>КонецЕсли;<br>КонецЦикла;<br>ИЛИ ТАК<br>СпрЦены = СоздатьОбъект("Справочник.ЦеныНоменклатуры");<br>СпрЦены.ИспользоватьВладельца(МФКатЦены.ПолучитьЗначение(Ном).ТекущийЭлемент());<br>Если СпрЦены.НайтиПоРеквизиту("ТипЦен",ЭлементСправочникаТипыЦен,0) = 1 Тогда<br> Exc.Cells(ТекСтрока-1, Инд+1).Value = СпрЦены.Цена.Получить(КакаятоДата);<br>КонецЕсли;<br>Если СпрЦены.НайтиПоРеквизиту("ТипЦен",ДругойЭлементСправочникаТипыЦен,0) = 1 Тогда<br> Exc.Cells(ТекСтрока-1, Инд+2).Value = СпрЦены.Цена.Получить(КакаятоДата);<br>КонецЕсли;<br>и т.д.<br><br>Можно конечно и запросом, но как-то в типовых конфигурациях запросов к справочникам очень мало <br>"
12.03.2009
16:09
#19
"начну с самого начала<br>есть форма в которой перед началом печати в списке (Индефикатор списка МФКатЦены) выбираются типы цен, например(закупочная розничная оптовая и тд..)<br>для формирования шапки мы использовали это:<br><br>КолРек=МФКатЦены.РазмерСписка();<br>Для Ном=1 по КолРек Цикл<br>Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном).Наименование; <br>КонецЦикла<br>Например выбрав три типа цены - розничная, мелкооптовая и закупочная<br>мы получили <br> ______A___________B________________C______<br>1| розничная | мелкооптовая | закупочная|<br>теперь нужно таким же способом сделать что бы в эти колонки вбивались цены<br> ______A___________B________________C______<br>1| розничная | мелкооптовая | закупочная|<br>2| 500.00 | 400.00 | 300.00 |<br><br>используя вот это:<br>КолРек=МФКатЦены.РазмерСписка();<br>Для Инд = 1 По КолРек Цикл <br>Exc.Cells(ТекСтрока-1, Инд).Value = ЧЦена;<br>КонецЦикла<br><br>если в списке первой была указана цена закупочная то по всем трем колонкам выставилась цена 300.00<br>если первой в списке была розничная то соответственно 500.00 и тд.<br>вобщем мне нужно как то привязать значение перем. "ЧЦена" к номеру строки в списке МФКатЦены"
13.03.2009
07:01
#20
"Вам уже объяснил BelikovS, что у вас в цикле ЧЦена всегда имеет одно и то же значение, соответственно и подставляется одно и то же значение, которое где-то когда-то вы должны определять, только для нас это тайна<br><br>Что бы для нас это стало меньшей тайной<br>нужно <br>1. значть структуру ваших справочников<br>2. понять как Вы формируете список МФКатЦены<br>3. Что Вы хотите видеть в списке<br><br>Явно вам не просто нужны цены, а еще наверное нужны и коды номенклатуры или артикулы или хзотя бы наименования<br>О чем Вам скажет просто набор цен?????<br>Скорее всего у вас должно быть что-то типа <br>______A___________B________________C_______________D_______<br>1| розничная | мелкооптовая | закупочная| Номенклатура |<br>2| 500.00 | 400.00 | 300.00 | Сапоги<br>3| 100.00 | 120.00 | 30.00 | Валеки<br><br>Сначала Вы формируете шапку, что у вас собственно сделано, а затем у вас должен быть цикл в цикле<br>Один цикл вы идете по номенклатуре<br>Спр = СоздатьОбъект("Справочники.Номенклатура");<br>Спр.ВыбратьЭлементы();<br>ТекСтрока = 1;<br>КолРек=МФКатЦены.РазмерСписка();<br>Пока Спр.ПолучитьЭлемент() = 1 Цикл<br>ТекСтрока = ТекСтрока + 1;<br>Exc.Cells(ТекСтрока, КолРек+2).Value = Спр.Наименование;<br><br>СпрЦены = СоздатьОбъект("Справочник.ЦеныНоменклатуры");<br>СпрЦены.ИспользоватьВладельца(Спр.ТекущийЭлемент());<br>Для Инд = 1 По КолРек Цикл <br>Если СпрЦены.НайтиПоРеквизиту("ТипЦен",МФКатЦены.ПолучитьЗначение(Инд-1).ТекущийЭлемент(),0) = 1 Тогда<br>Exc.Cells(ТекСтрока, Инд+1).Value = СпрЦены.Цена.Получить(КакаятоДата);<br>КонецЕсли;<br>КонецЦикла<br>КонецЦикла;<br><br><br> "
Читают тему
(гостей: 1)