![]() |
Почему не записываются виды расчетов? Пишу обработку: Выб = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Выбрать(); Пока Выб.Следующий() Цикл Если СокрЛП(Выб.Наименование) = "" или СокрЛП(Выб.НаименованиеДоп) = "" Тогда Продолжить; КонецЕсли; Об = Выб.ПолучитьОбъект(); Наим1 = СокрЛП(Выб.Наименование); Наим2 = СокрЛП(Выб.НаименованиеДоп); Об.Наименование = Наим2; Об.НаименованиеДоп = Наим1; Об.Записать(); КонецЦикла; Всё это надо для простого изменения расчетной ведомости и прочих отчётов на английские наименования. Для этого просто добавил к типовому виду расчета реквизит "НаименованиеДоп" для английского наименования. После выполнения этой обработки не происходит ничего... Хотя в отладчике показывает изменённые виды расчетов. Люди добрые, если кто уже победил сию проблему, поделитесь плиз... |
неужели никто программно не записывал виды расчетов??? |
Раз знакомы с понятием отладчик, значит делайте трассировку, смотрите где сбоит. Желательно в попытку обернуть запись. |
В том то и дело, что в отладчике записывает объект, и показывает его с изменёнными реквизитами. А когда выхожу в 1С, смотрю - а он как был так и остался. При этом ошибок никаких не выдаёт... |
я не знаю языка восьмёрки и поправьте меня, если я не прав... Об = Выб.ПолучитьОбъект(); // здесь мы позиционируемся на элементе справочника почему же тогда условие Если-КонецЕсли, работающее с конкретными реквизитами элемента справочника, стоит [b]до[/b] позиционирования на данный элемент? |
3-Vinni_P > Транзакция 4-Гена > позиционирование у автора происходит нормально в выборке методом Следующий() |
5-roma n Пробовал и с транзакцией, и без. Даже пробовал без начала зафиксить - естественно выдало ошибку. Думаю мож релиз такой(8.2.15.289)? На другом еще не пробовал. |
а запросом никак? |
Я, как и Гена, тоже не знаток восьмерки, но в 7.7 мне бы такая конструкция не понравилась. По крайней мере, в той части кода, которую привел автор: он там меняет наименование, а по [b]какому параметру[/b] у него идет выборка? Если по наименованию, то ясный пень, что она сбивается. Причем, по задумке у него НаименованиеДоп и НаименованиеДоп просто меняются местами, если в результате сбоя выборки происходит [b]два[/b] прохода по каждому элементу - вуаля, впечатление, что "не происходит ничего". Надо включить выборку по порядку [b]кодов[/b], или как там это в снеговике называется. |
(8) логично... если перебор по наименованию в цикле, то рус на лат изменится, а вот наоборот - нет, т.к. лат ложится выше по алфавиту... можно проверить, вставив счётчик... |
например, дошло до элемента Gena, записали как Гена... который лёг ниже в справочнике по наименованияю... в конце концов перебором выйдем на Гена и сделаем Gena... в результате, как был Gena, так и остался... |
8-Ткачик > Так и указываешь порядок выборки: "Код" или "Наименование". 10-Гена > Не выеживайся. Стандартный прием без манипуляции с индексами: пишешь отобранное в список (вариант: отбираешь запросом, если отбирать надо много и хитрО, далее пользуешься результатом запроса заместо списка). В список/запрс ссылки, естественно. Затем проходишь по списку, вызывая объект для изменения и записи. |
Ну вот взял почти Ваш кусок кода:-)) Закоментарил все что связано с "НаименованиеДоп", у меня его нет..просто к наименованию прибавил "?" Сработало...:-)) Выб = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Выбрать(); Пока Выб.Следующий() Цикл //Если СокрЛП(Выб.Наименование) = "" или СокрЛП(Выб.НаименованиеДоп) = "" Тогда Продолжить; КонецЕсли; Об = Выб.ПолучитьОбъект(); Наим1 = СокрЛП(Выб.Наименование); //Наим2 = СокрЛП(Выб.НаименованиеДоп); Об.Наименование = "?"+Наим1; //Об.НаименованиеДоп = Наим1; Об.Записать(); // КонецЦикла; Сообщить("Конец"); |
(12) "[em]Сработало...:-))[/em]" - дык, добавление "?" не должно сбивать выборку. Разве что наименование состоит из одних только символов с ASCII-кодом меньше 63, т.е. цифр и знаков препинания. |
(13)..Дыыы вроде...в снеговике порядок выборки не зависит от наименования или кода, если Вы специально не укажете Выбрать(,,,"Нименование") или Выбрать(,,,"Код") |
(14) А разве в снеговике нет возможности (как в клюшках у справочника, например) задать в конфигураторе основное представление - либо "В виде кода", либо "В виде наименования"? ИМХО, именно от этого и зависит порядок выборки по умолчанию. |
(15).....а як же, есть, в виде кода или наименования, "свичик" при описании объекта стоит...:-)) ...Ну не наю, если дело в этом...ну пусть сделает Выбрать(,,,"Код"), тогда наименование точно не причем |
я бы выборку сделал запросом и выгрузил в тз... потом по строкам тз получал объект и менял его. |
16-_U2 > Дурной тон: строить свой код, исходя из приятного себе [b]предположения[/b]... |
(то 18)...код не мой и я не говорил, что он мне нравится, вопрос в другом: почему он не работает...:-)) |
19-_U2 > Вот чтоб не мучатся с этим вопросом (при преобразовании индексируемых полей), не вспоминать свой код, и не тревожить склероз, и не говорить "Ой!", когда выяснется истинный индекс, и рекомендуется (горячо) метод "сначала выбери, потом измени" (см.11) :) |
(0) не лез ты бы куда не надо, внешним отчетом ведомость сформируй как просили. завтра аудиторы придут, гб понятно в декретный отпуск - как потом назад возвращать станешь, опер. инфу за за пару дней слабо ввесети, кот операторы в три смены вводили круглосуточно |
+ сколько не ваял универсальных отчетов - никогда ни кому не пригодилось, хочу мол в третьей строчке 2600 - на = 2600, главное шоп отчет запускался |
| Текущее время: 22:10. Часовой пояс GMT +3. |