0
- 27.04.2013 - 14:42
|
Пишу обработку: Выб = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Вы брать(); Пока Выб.Следующий() Цикл Если СокрЛП(Выб.Наименование) = "" или СокрЛП(Выб.НаименованиеДоп) = "" Тогда Продолжить; КонецЕсли; Об = Выб.ПолучитьОбъект(); Наим1 = СокрЛП(Выб.Наименование); Наим2 = СокрЛП(Выб.НаименованиеДоп); Об.Наименование = Наим2; Об.НаименованиеДоп = Наим1; Об.Записать(); КонецЦикла; Всё это надо для простого изменения расчетной ведомости и прочих отчётов на английские наименования. Для этого просто добавил к типовому виду расчета реквизит "НаименованиеДоп" для английского наименования. После выполнения этой обработки не происходит ничего... Хотя в отладчике показывает изменённые виды расчетов. Люди добрые, если кто уже победил сию проблему, поделитесь плиз... | |
1
- 29.04.2013 - 16:19
| неужели никто программно не записывал виды расчетов??? | |
2
- 29.04.2013 - 17:39
| Раз знакомы с понятием отладчик, значит делайте трассировку, смотрите где сбоит. Желательно в попытку обернуть запись. | |
3
- 30.04.2013 - 06:21
|
В том то и дело, что в отладчике записывает объект, и показывает его с изменёнными реквизитами. А когда выхожу в 1С, смотрю - а он как был так и остался. При этом ошибок никаких не выдаёт... | |
4
- 30.04.2013 - 07:28
|
я не знаю языка восьмёрки и поправьте меня, если я не прав... Об = Выб.ПолучитьОбъект(); // здесь мы позиционируемся на элементе справочника почему же тогда условие Если-КонецЕсли, работающее с конкретными реквизитами элемента справочника, стоит до позиционирования на данный элемент? | |
5
- 30.04.2013 - 09:56
|
3-Vinni_P > Транзакция 4-Гена > позиционирование у автора происходит нормально в выборке методом Следующий() | |
6
- 01.05.2013 - 06:13
|
5-roma n Пробовал и с транзакцией, и без. Даже пробовал без начала зафиксить - естественно выдало ошибку. Думаю мож релиз такой(8.2.15.289)? На другом еще не пробовал. | |
7
- 01.05.2013 - 08:35
| а запросом никак? | |
8
- 01.05.2013 - 09:30
|
Я, как и Гена, тоже не знаток восьмерки, но в 7.7 мне бы такая конструкция не понравилась. По крайней мере, в той части кода, которую привел автор: он там меняет наименование, а по какому параметру у него идет выборка? Если по наименованию, то ясный пень, что она сбивается. Причем, по задумке у него НаименованиеДоп и НаименованиеДоп просто меняются местами, если в результате сбоя выборки происходит два прохода по каждому элементу - вуаля, впечатление, что "не происходит ничего". Надо включить выборку по порядку кодов, или как там это в снеговике называется. | |
9
- 01.05.2013 - 10:58
|
(8) логично... если перебор по наименованию в цикле, то рус на лат изменится, а вот наоборот - нет, т.к. лат ложится выше по алфавиту... можно проверить, вставив счётчик... | |
10
- 01.05.2013 - 11:04
|
например, дошло до элемента Gena, записали как Гена... который лёг ниже в справочнике по наименованияю... в конце концов перебором выйдем на Гена и сделаем Gena... в результате, как был Gena, так и остался... | |
11
- 01.05.2013 - 15:18
|
8-Ткачик > Так и указываешь порядок выборки: "Код" или "Наименование". 10-Гена > Не выеживайся. Стандартный прием без манипуляции с индексами: пишешь отобранное в список (вариант: отбираешь запросом, если отбирать надо много и хитрО, далее пользуешься результатом запроса заместо списка). В список/запрс ссылки, естественно. Затем проходишь по списку, вызывая объект для изменения и записи. | |
12
- 01.05.2013 - 20:16
|
Ну вот взял почти Ваш кусок кода:-)) Закоментарил все что связано с "НаименованиеДоп", у меня его нет..просто к наименованию прибавил "?" Сработало...:-)) Выб = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Вы брать(); Пока Выб.Следующий() Цикл //Если СокрЛП(Выб.Наименование) = "" или СокрЛП(Выб.НаименованиеДоп) = "" Тогда Продолжить; КонецЕсли; Об = Выб.ПолучитьОбъект(); Наим1 = СокрЛП(Выб.Наименование); //Наим2 = СокрЛП(Выб.НаименованиеДоп); Об.Наименование = "?"+Наим1; //Об.НаименованиеДоп = Наим1; Об.Записать(); // КонецЦикла; Сообщить("Конец"); | |
13
- 01.05.2013 - 20:39
| (12) "Сработало...:-))" - дык, добавление "?" не должно сбивать выборку. Разве что наименование состоит из одних только символов с ASCII-кодом меньше 63, т.е. цифр и знаков препинания. | |
14
- 01.05.2013 - 21:02
|
(13)..Дыыы вроде...в снеговике порядок выборки не зависит от наименования или кода, если Вы специально не укажете Выбрать(,,,"Нименование") или Выбрать(,,,"Код") | |
15
- 01.05.2013 - 21:14
| (14) А разве в снеговике нет возможности (как в клюшках у справочника, например) задать в конфигураторе основное представление - либо "В виде кода", либо "В виде наименования"? ИМХО, именно от этого и зависит порядок выборки по умолчанию. | |
16
- 01.05.2013 - 21:30
|
(15).....а як же, есть, в виде кода или наименования, "свичик" при описании объекта стоит...:-)) ...Ну не наю, если дело в этом...ну пусть сделает Выбрать(,,,"Код"), тогда наименование точно не причем | |
17
- 01.05.2013 - 22:02
| я бы выборку сделал запросом и выгрузил в тз... потом по строкам тз получал объект и менял его. | |
18
- 01.05.2013 - 22:03
| 16-_U2 > Дурной тон: строить свой код, исходя из приятного себе предположения... | |
19
- 01.05.2013 - 22:30
| (то 18)...код не мой и я не говорил, что он мне нравится, вопрос в другом: почему он не работает...:-)) | |
20
- 01.05.2013 - 22:49
| 19-_U2 > Вот чтоб не мучатся с этим вопросом (при преобразовании индексируемых полей), не вспоминать свой код, и не тревожить склероз, и не говорить "Ой!", когда выяснется истинный индекс, и рекомендуется (горячо) метод "сначала выбери, потом измени" (см.11) :) | |
21
- 05.05.2013 - 15:22
| (0) не лез ты бы куда не надо, внешним отчетом ведомость сформируй как просили. завтра аудиторы придут, гб понятно в декретный отпуск - как потом назад возвращать станешь, опер. инфу за за пару дней слабо ввесети, кот операторы в три смены вводили круглосуточно | |
22
- 05.05.2013 - 15:29
| + сколько не ваял универсальных отчетов - никогда ни кому не пригодилось, хочу мол в третьей строчке 2600 - на = 2600, главное шоп отчет запускался | |
| Интернет-форум Краснодарского края и Краснодара |