|
|
|
Сбилась автоматическая нумерация накладных | ☑ | ||
|---|---|---|---|---|
|
0
Korben
23.12.07
✎
17:49
|
Привет всем. Короче в нашей фирме произошла следующая канитель. Вернее, несколько проблем, которые мне нужно исправить. Был бы безумно благодарен, если бы кто-либо поделился опытом и помог мне их исправить.
Установлена - 1С 7.7. ОС - Win XP SP2 Итак. 1. Бухгалтер экспортировала базу, отправила в головной офис. Там тётка внесла нужные изменения и переслала обратно. База была импортирована и после этого сбилась автоматическая нумерация расходных накладных. Видимо, тётка не правильно ввела номер - до этого накладные нумеровались как ПК-00117, а она ввела ПК-0117, теперь при создании расходной накладной, всегда выскакивает этот ПК-0117 и бухгалтеру приходится вводить порядковый номер вручную. Отыскать неправильно пронумерованную накладную не смог - её в общем списке накладных нет. точно. Пытался использовать обработку docrenum.ert (Восстановление номеров документов) - результата не дало, всё равно ПК-0117. С uchoice.ert не смог совладать - так и не понял, как с её помощью восстановить нумерацию. Пробовал менять в конфигураторе количество символов в номере на 9, - не помогло. Не знаю куда копать ещё, помогите пожалуйста восстановить автоматическую нумерацию. 2. При создании счёт-фактуры, выбирается поставщик. У нас это - филиал ООО "Фирма". После этого, если нажать Печать, появляется предпросмотр печатаемого счёта-фактуры, в котором первая строчка - Поставщик, а потом есть строка того, кто отгружает. Так вот, мне нужно сделать так, чтобы в строке Поставщик был просто ООО "Фирма" (т.к.поставщик - москвоский офис), а в строке Отгружающего - филиал ООО "Фирма" (наша фирма). Проблема в том, что в Справочнике можно указать только одно название фирмы, и нельзя указать так, чтобы были разные Поставщик и Отгружающий. Бухгалтер, опять же, вводит слово Филиал вручную. Посоветуйте, пожалуйста, возможно вообще это сделать, или нет и как. |
|||
|
1
leshikkam
23.12.07
✎
17:54
|
(1) по-хорошему вызвать программиста
Если не вариант, то 1) Указать какой тип нумерации стоит у данного документа, точнее в пределах чего (года, или всего журнала). 2) Найти документ с № ПК-0116 и поставить ПК-000116 3) Найти все документы с неправильной длинной: Док = СоздатьОбъект("Документ.ТвойВид"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент()=1 Цикл Если СтрДлина(СокрЛП(Док.НомерДок))<>8 Тогда Сообщить(""+Док); КонецЕсли; КонецЦикла; |
|||
|
2
Korben
24.12.07
✎
00:35
|
Нумерация стоит в пределах года.
А если ПК-0116 не обнаружится? По крайней мере визуально я его не нашёл? Спасибо заранее |
|||
|
3
Korben
24.12.07
✎
00:53
|
leshikkam, не пойми меня не правильно, но ... как использовать этот код, написанный тобой? как запустить этот цикл? В 1С ни разу не программировал, соответственно не особо силён в этом.
|
|||
|
4
Korben
24.12.07
✎
00:56
|
Как я понял - в Конфигураторе создать Обработку, вставить этот код во вкладке Модуль и...?
|
|||
|
5
KRV
24.12.07
✎
01:04
|
Специалиста пригласи!!! Специалиста!!! или учись... тебе уже все сказали - разжевывать не будут. Эксперименты на КОПИИ делай... а то сидеть потом долго не сможешь...
|
|||
|
6
Korben
24.12.07
✎
01:33
|
KRV, да я с радостью научусь, просто всё это необходимо сделать в самые ближайшие сроки, а специалиста вызвать - нужно ждать около недели. Поэтому и обращаюсь к людям, я ведь не прошу сделать всё за меня, просто прошу помочь...
|
|||
|
7
Korben
24.12.07
✎
01:39
|
1. Нашёл. Но он доступен только для просмотра, но не для изменения и на нём стоит пометка об удалении. При попытке снять пометку об удалении, говорит: Нельзя снимать удаление с документа в закрытом для редактирования периоде. Как быть!?
|
|||
|
8
Дантес
24.12.07
✎
01:40
|
Korben, ты извини конечно, но в твоем случае фразу "просто прошу помочь" можно перевести как "ребята сделайте за меня". И это не потому что ты ленивый и не хочешь делать сам, а потому что "В 1С ни разу не программировал, соответственно не особо силён в этом."
В связи с этим у тебя есть два варианта: 1. найти в инете обработку по исправлению нумерации в документах. 2. ждать специалиста Третьего не дано, т.к. в воскресенье врядли найдется желающий что-то объяснять человеку который "В 1С ни разу не программировал" |
|||
|
9
Дантес
24.12.07
✎
01:42
|
(7) молодец ... если не ошибаюсь то есть на этот случай константа "Дата запрета редактирования документов" ... поставь ее раньше чем дата документа и снимай пометку
|
|||
|
10
Korben
24.12.07
✎
01:49
|
(9) Дантес, спасибо большое! Исправил.
|
|||
|
11
Дантес
24.12.07
✎
01:53
|
(10) Пожалуйста.
ну все .... требуй повышения на работе )))))))))) |
|||
|
12
Korben
24.12.07
✎
01:56
|
(10) Хорошо, и про тебя упомяну :)
А про второй пункт ты не в курсе? Ну, поля "Грузоотправитель и его адрес" и "Продавец"? Я б тогда вообще каждый день на твой ник молился! |
|||
|
13
KRV
24.12.07
✎
02:07
|
(12) Сними в документе при выписке галку "Грузоотправитель он же" и будет тебе счастье.... кого угодно туда запишешь, хоть приемную Ватикана...
|
|||
|
14
Korben
24.12.07
✎
02:20
|
(13) Я впишу, но это будет однократно. А как сделать так, чтобы каждый раз, когда я захочу сделать Ватикан грузоотправителем, не нужно было вписывать всё это вручную? Автозаполнение. В процедуре ввода на Основании не пойдёт?
|
|||
|
15
Дантес
24.12.07
✎
02:28
|
(12) а вот это лишнее ... икота замучает :)
Ну если я тебя правильно понял то тебе надо править процедуру в документе: Процедура ПодготовитьРеквизитыШапки(Рекв) Она вроде и формирует значения реквизитов шапки и про грузоотправителя там есть следующий текст Если ЕстьТовары() = 1 Тогда Рекв.ДобавитьЗначение("Грузоотправитель и его адрес: Он же", "Грузоотправитель"); Рекв.ДобавитьЗначение(Шаблон("Грузополучатель и его адрес: [ЮрФизЛицо.ПолнНаименование], Адрес: [глПредставлениеАдреса(ЮрФизЛицо.ФактАдрес)]"), "Грузополучатель"); Иначе Рекв.ДобавитьЗначение("Грузоотправитель и его адрес: -----", "Грузоотправитель"); Рекв.ДобавитьЗначение("Грузополучатель и его адрес: -----", "Грузополучатель"); КонецЕсли; Так вот тебе надо в строке Рекв.ДобавитьЗначение("Грузоотправитель и его адрес: Он же", "Грузоотправитель"); Заменить "Грузоотправитель и его адрес: Он же" на какой-то шаблон Например: Рекв.ДобавитьЗначение(Шаблон("Грузоотправитель и его адрес: [ЮрЛицоФирма.ПолнНаименование], "Грузоотправитель"); Это пример из 944 торговли ... самая новая что у меня есть :) PS блин ... спустя полтора года открыл 7.7 ... ужос! |
|||
|
16
Korben
24.12.07
✎
02:49
|
Блин, не могу найти в каком модуле находится эта процедура?
|
|||
|
17
Дантес
24.12.07
✎
02:51
|
(16) Документ "СчетФактураВыданый"
|
|||
|
18
Korben
24.12.07
✎
02:56
|
(15) Документы - Счет-Фактура - Форма
В Процедуре Печать, у меня есть вот что: //ПечГрузоотправитель="Грузоотправитель и его адрес: Он же"; //комм Jane 24.03.03 ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]"); //ПечГрузополучатель=Шаблон("Грузополучатель и его адрес: [Клиент.ПолноеНаименование], Адрес: [Клиент.ПочтовыйАдрес]"); // комм Jane 14.09.04 ПечГрузополучатель=Шаблон("Грузополучатель и его адрес: [Клиент.ПолноеНаименование], Адрес: [Клиент.ПочтАдресКП]"); // доб Jane 14.09.04 Если я здесь заменю ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]"); на ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [ЮрЛицоФирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]"); это сработает? |
|||
|
19
Korben
24.12.07
✎
02:58
|
(17) В Документах есть только Счет и СчетФактура, а СчетФактураВыданный не имеется.
|
|||
|
20
Дантес
24.12.07
✎
03:03
|
(18) ты погоди заменять ... я тебе просто как пример привел тот текст ... из не самой свежей торговли ...
Я даже не знаю что у тебя за конфа ... может там и нет переменной "ЮрЛицоФирма" По строке ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]"); У тебя выводится полное наименование Фирмы и ее почтовый адрес. Тебе нужно чтобы у тебя были разные поставщик и отгружающий ... ну так просто измени одну из строк кода где параметры шапки получаешь. Т.е. у тебя есть два параметра ПОСТАВЩИК и ГРУЗООТПРАВИТЕЛЬ тебе нужно колдовать с ними ... Например в поставщика забить просто наименование фирмы, а в грузоотправителя полное наименование ... вот формально и получиться что разные |
|||
|
21
Дантес
24.12.07
✎
03:04
|
(19) ну блин ... определись уж с этим сам ... наверное если ты печатаешь СФ то и док тебе нужен СФ ...
|
|||
|
22
Korben
24.12.07
✎
03:05
|
(20) Окей, поколдую, о результатах колдовства сообщу.
Огромное спасибо ещё раз. |
|||
|
23
ado
24.12.07
✎
05:10
|
(22) Только, прежде чем править код конфигурации, подумай, что тебе (а, недай бог еще и не тебе) её еще обновлять придется ...
|
|||
|
24
Korben
24.12.07
✎
07:52
|
Подскажите, а мне вот на другом форуме подсказали в Процедуре ввода на основании добавить код заполнения Грузоотправителя. А перед этим - Справочники - Контрагенты - Создаю новую группу ГРУЗООТПРАВИТЕЛИ - в ней новую Строку - филиал ООО "Фирма".
Такой способ пройдёт? Если да, то в каком месте вставлять?! Процедура ввода на основании маленько огромная... Я предположил, что в этом блоке: ИначеЕсли ВидОсн="ОтчетРеализатора" Тогда Если ДокОснование.Клиент.ВидКонтрагента=Перечисление.ВидыКонтрагентов.Организация Тогда ОплатаБН=Да; Иначе ОплатаБН=Нет; КонецЕсли; ДокОснование.ВыбратьСтроки(); Пока ДокОснование.ПолучитьСтроку()=1 Цикл НоваяСтрока(); Товар=ДокОснование.Товар; СтавкаНДС=Товар.СтавкаНДС; Цена=ДокОснование.Цена*ДокОснование.Курс; Единица=ДокОснование.Единица; Коэффициент=ДокОснование.Единица.Коэффициент; Количество=ДокОснование.Количество; НДС=ДокОснование.НДС*ДокОснование.Курс; НГСМ=ДокОснование.НГСМ*ДокОснование.Курс; Сумма=Цена*Количество*Единица.Коэффициент; КонецЦикла; |
|||
|
25
Дантес
24.12.07
✎
10:50
|
(24) если я прально понял, то в этом случае придется добавлять новый реквизит документа т.к. ИМХО нет в СФ реквизита Грузоотправитель.
А теперь представь, добавил ты реквизит, исправил печатную форму ... и все у тебя хорошо заполняется и печатается ... в новых документах, а в старых реквизит остался не заполненным ... На мой взгляд проще только печатную форму подправить чем процедуру ввода на основании и печатную форму. |
|||
|
26
Korben
24.12.07
✎
13:10
|
(25) Согласен.
ну, тогда последнее, что остаётся - составить условие. моё не работает че-то, исправь пожалуйста. Где-то с кавычками напутал, почти уверен. В процедуре Печать, вместо ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]"); Я сделал: Если Фирма.ПолноеНаименование="ООО "Фирма"" Тогда ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: филиал ООО ""Фирма"", Адрес: [Фирма.ПочтовыйАдрес]"); Иначе ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]"); КонецЕсли; Но оно не работает, сразу срабатывает условие Иначе. |
|||
|
27
Korben
24.12.07
✎
13:11
|
Кстати в условии пробовал как (Фирма.ПолноеНаименование="ООО ""Фирма""")
так и (Фирма.ПолноеНаименование="ООО ""Фирма"") Короче как только не пробовал, всё равно не работает. |
|||
|
28
Дантес
24.12.07
✎
13:26
|
Вообще-то условие Фирма.ПолноеНаименование = "ООО ""Фирма""" должно работать
если у тебя действительно есть фирма с полным наименованием ООО "Фирма" |
|||
|
29
Дантес
24.12.07
✎
13:28
|
Может пробел где есть
попробуй так Если СокрЛП(НРег(Фирма.ПолноеНаименование)) = "ооо ""фирма""" Тогда <выражение 1> Иначе <выражение 2> КонецЕсли |
|||
|
30
Korben
24.12.07
✎
13:43
|
Неа. не сработало.
Фирма с полным наименованием ООО "Фирма" есть 100%. Не хочет ни в какую. |
|||
|
31
Korben
24.12.07
✎
14:41
|
Всё, сделал.
Сработало следующее условие: Если СокрЛП(Фирма.ПолноеНаименование)="ООО ""Фирма""" Тогда ПечГрузоотправитель="Грузоотправитель и его адрес: филиал ООО ""Фирма"", Адрес: "+ Фирма.ПочтовыйАдрес; Иначе ПечГрузоотправитель="Грузоотправитель и его адрес: "+ Фирма.ПолноеНаименование+" , Адрес: "+Фирма.ПочтовыйАдрес; КонецЕсли; |
|||
|
32
Дантес
24.12.07
✎
14:44
|
Хочешь сказать что
Если СокрЛП(Фирма.ПолноеНаименование)="ООО ""Фирма""" Тогда - СРАБОТАЛО а Если СокрЛП(НРег(Фирма.ПолноеНаименование)) = "ооо ""фирма""" Тогда - НЕ СРАБОТАЛО ? Бред!!! |
|||
|
33
Korben
24.12.07
✎
14:44
|
А, и последнее, подскажите, плз, в перечне документов (в моём случае, счет-фактуры), есть документ с неправильным номером, его можно удалить? Delete'ом ставится только пометка об удалении, но сам он не удаляется. Как его удалить к чертям собачьим?
|
|||
|
34
Дантес
24.12.07
✎
14:48
|
Операции - Удаление помеченных объектов
|
|||
|
35
Korben
24.12.07
✎
14:57
|
(32) Нет, скорее всего дело было в шаблонах, т.е. в самих выражениях, мне кажется. Честное слово, написал как есть. Просто перебрал все возможные варианты.
|
|||
|
36
Korben
24.12.07
✎
15:14
|
(34) А если этот документ не захотел удаляться - 1С сказал мне, что 56 из 200 документов удалить нельзя, и этот злополучный ПК-0116 - как раз в этих 56?
|
|||
|
37
Korben
24.12.07
✎
15:26
|
Всё. удалил. была ссылка на этот документ. Всё, огромное спасибо тебе, Дантес и всем остальным тоже. Выручил невероятно просто. Буду молиться за тебя! :)
Всё удалил, всё исправил. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |